diff --git a/.github/workflows/sdk-tests.yml b/.github/workflows/sdk-tests.yml index c7a48e743..161e71e3c 100644 --- a/.github/workflows/sdk-tests.yml +++ b/.github/workflows/sdk-tests.yml @@ -36,14 +36,14 @@ jobs: - name: Repository contains actual csharp-sdk version run: | - diff_result=$(git diff --exit-code --name-only example/csharp/aidbox || true) + diff_result=$(git diff --exit-code --name-only examples/csharp/generated || true) if [ -z "$diff_result" ]; then echo "✅ Generated SDK is identical to the one stored in repository." else echo "❌ Generated SDK differs from the one stored in repository." echo "Differences:" - git diff example/csharp/aidbox + git diff examples/csharp/generated exit 1 fi @@ -107,3 +107,39 @@ jobs: - name: Run tests run: make test-typescript-ccda-example + + test-python-sdk-test: + runs-on: ubuntu-latest + + strategy: + matrix: + bun-version: [ latest ] + + steps: + - uses: actions/checkout@v4 + + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + with: + bun-version: ${{ matrix.bun-version }} + + - name: Install dependencies + run: bun install --frozen-lockfile + + - name: Test Python SDK + run: | + export AIDBOX_LICENSE_ID="${{ secrets.AIDBOX_LICENSE_ID }}" + make test-python-sdk + + - name: Repository contains actual python-sdk version + run: | + diff_result=$(git diff --exit-code --name-only examples/python/generated || true) + + if [ -z "$diff_result" ]; then + echo "✅ Generated SDK is identical to the one stored in repository." + else + echo "❌ Generated SDK differs from the one stored in repository." + echo "Differences:" + git diff examples/python/generated + exit 1 + fi \ No newline at end of file diff --git a/Makefile b/Makefile index 541c2364a..c768759f3 100644 --- a/Makefile +++ b/Makefile @@ -63,3 +63,26 @@ test-csharp-sdk: typecheck format prepare-aidbox-runme lint cd examples/csharp && dotnet restore cd examples/csharp && dotnet build cd examples/csharp && dotnet test + +PYTHON=python3 +PYTHON_SDK_EXAMPLE=./examples/python + +test-python-sdk: typecheck format prepare-aidbox-runme lint + $(TYPECHECK) --project examples/python/tsconfig.json + bun run examples/python/generate.ts + + @if [ ! -d "$(PYTHON_SDK_EXAMPLE)/venv" ]; then \ + cd $(PYTHON_SDK_EXAMPLE) && \ + $(PYTHON) -m venv venv && \ + . venv/bin/activate && \ + pip install -r generated/requirements.txt; \ + fi + + # Run mypy in strict mode + cd $(PYTHON_SDK_EXAMPLE) && \ + . venv/bin/activate && \ + mypy --strict generated + + cd $(PYTHON_SDK_EXAMPLE) && \ + . venv/bin/activate && \ + python -m pytest test_sdk.py -v diff --git a/examples/csharp/generated/Hl7FhirR4Core/Account.cs b/examples/csharp/generated/Hl7FhirR4Core/Account.cs index 778ca7f86..0b9c4bbe9 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Account.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Account.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ActivityDefinition.cs b/examples/csharp/generated/Hl7FhirR4Core/ActivityDefinition.cs index c132bdbe2..bad4bef9b 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ActivityDefinition.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ActivityDefinition.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/AdverseEvent.cs b/examples/csharp/generated/Hl7FhirR4Core/AdverseEvent.cs index f07208e15..b0daa3d42 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/AdverseEvent.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/AdverseEvent.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/AllergyIntolerance.cs b/examples/csharp/generated/Hl7FhirR4Core/AllergyIntolerance.cs index cfdceb64d..1f810630c 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/AllergyIntolerance.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/AllergyIntolerance.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Appointment.cs b/examples/csharp/generated/Hl7FhirR4Core/Appointment.cs index 1feffa108..391e2dc45 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Appointment.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Appointment.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/AppointmentResponse.cs b/examples/csharp/generated/Hl7FhirR4Core/AppointmentResponse.cs index d8d372322..e1a35dd08 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/AppointmentResponse.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/AppointmentResponse.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/AuditEvent.cs b/examples/csharp/generated/Hl7FhirR4Core/AuditEvent.cs index e307a18c3..2a58ba79e 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/AuditEvent.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/AuditEvent.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Basic.cs b/examples/csharp/generated/Hl7FhirR4Core/Basic.cs index 3f54d0da3..1ccf5dff2 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Basic.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Basic.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Binary.cs b/examples/csharp/generated/Hl7FhirR4Core/Binary.cs index 3beceb120..3c636e503 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Binary.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Binary.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/BiologicallyDerivedProduct.cs b/examples/csharp/generated/Hl7FhirR4Core/BiologicallyDerivedProduct.cs index 89a567651..062e326e7 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/BiologicallyDerivedProduct.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/BiologicallyDerivedProduct.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/BodyStructure.cs b/examples/csharp/generated/Hl7FhirR4Core/BodyStructure.cs index e18276585..8b3cd44cc 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/BodyStructure.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/BodyStructure.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Bundle.cs b/examples/csharp/generated/Hl7FhirR4Core/Bundle.cs index a0a888a85..12f5b86c8 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Bundle.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Bundle.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/CapabilityStatement.cs b/examples/csharp/generated/Hl7FhirR4Core/CapabilityStatement.cs index 29ee77262..3e74a3bfd 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/CapabilityStatement.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/CapabilityStatement.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/CarePlan.cs b/examples/csharp/generated/Hl7FhirR4Core/CarePlan.cs index eba0c80f2..1ac83433e 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/CarePlan.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/CarePlan.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/CareTeam.cs b/examples/csharp/generated/Hl7FhirR4Core/CareTeam.cs index 11f242ea8..51728332c 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/CareTeam.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/CareTeam.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/CatalogEntry.cs b/examples/csharp/generated/Hl7FhirR4Core/CatalogEntry.cs index 93e7010cc..898ed3b15 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/CatalogEntry.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/CatalogEntry.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ChargeItem.cs b/examples/csharp/generated/Hl7FhirR4Core/ChargeItem.cs index 01b6ca2a5..0c3e55544 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ChargeItem.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ChargeItem.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ChargeItemDefinition.cs b/examples/csharp/generated/Hl7FhirR4Core/ChargeItemDefinition.cs index daa290d49..00b91c621 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ChargeItemDefinition.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ChargeItemDefinition.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Claim.cs b/examples/csharp/generated/Hl7FhirR4Core/Claim.cs index bfede8f1f..460b103e3 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Claim.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Claim.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ClaimResponse.cs b/examples/csharp/generated/Hl7FhirR4Core/ClaimResponse.cs index 742132559..a547d362e 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ClaimResponse.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ClaimResponse.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ClinicalImpression.cs b/examples/csharp/generated/Hl7FhirR4Core/ClinicalImpression.cs index 8cfb8ac96..ac21d354a 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ClinicalImpression.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ClinicalImpression.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/CodeSystem.cs b/examples/csharp/generated/Hl7FhirR4Core/CodeSystem.cs index dd6343a85..094d222cd 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/CodeSystem.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/CodeSystem.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Communication.cs b/examples/csharp/generated/Hl7FhirR4Core/Communication.cs index 16dd7aa3e..b3aa69792 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Communication.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Communication.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/CommunicationRequest.cs b/examples/csharp/generated/Hl7FhirR4Core/CommunicationRequest.cs index 3622fc33c..1b6403c10 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/CommunicationRequest.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/CommunicationRequest.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/CompartmentDefinition.cs b/examples/csharp/generated/Hl7FhirR4Core/CompartmentDefinition.cs index 171c1777f..3de839f5f 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/CompartmentDefinition.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/CompartmentDefinition.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Composition.cs b/examples/csharp/generated/Hl7FhirR4Core/Composition.cs index 8936cb21f..5d5844350 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Composition.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Composition.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ConceptMap.cs b/examples/csharp/generated/Hl7FhirR4Core/ConceptMap.cs index 95bfab14f..0c79568c7 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ConceptMap.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ConceptMap.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Condition.cs b/examples/csharp/generated/Hl7FhirR4Core/Condition.cs index adb3624c5..340b20436 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Condition.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Condition.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Consent.cs b/examples/csharp/generated/Hl7FhirR4Core/Consent.cs index f13e69d7b..9bf529a05 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Consent.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Consent.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Contract.cs b/examples/csharp/generated/Hl7FhirR4Core/Contract.cs index ed61484a3..af5eef2a5 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Contract.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Contract.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Coverage.cs b/examples/csharp/generated/Hl7FhirR4Core/Coverage.cs index fa46c9f66..6156c5890 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Coverage.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Coverage.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/CoverageEligibilityRequest.cs b/examples/csharp/generated/Hl7FhirR4Core/CoverageEligibilityRequest.cs index f455b388d..85c4c40ae 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/CoverageEligibilityRequest.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/CoverageEligibilityRequest.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/CoverageEligibilityResponse.cs b/examples/csharp/generated/Hl7FhirR4Core/CoverageEligibilityResponse.cs index 1613d91aa..986f55b01 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/CoverageEligibilityResponse.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/CoverageEligibilityResponse.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Definition.cs b/examples/csharp/generated/Hl7FhirR4Core/Definition.cs deleted file mode 100644 index c2dda1892..000000000 --- a/examples/csharp/generated/Hl7FhirR4Core/Definition.cs +++ /dev/null @@ -1,14 +0,0 @@ -// WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories -// Any manual changes made to this file may be overwritten. - - -namespace SuperNameSpace.Hl7FhirR4Core; - -public class Definition { - - public override string ToString() => - JsonSerializer.Serialize(this, Helper.JsonSerializerOptions); - -} - diff --git a/examples/csharp/generated/Hl7FhirR4Core/DetectedIssue.cs b/examples/csharp/generated/Hl7FhirR4Core/DetectedIssue.cs index 4b0ae543c..7f955553c 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/DetectedIssue.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/DetectedIssue.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Device.cs b/examples/csharp/generated/Hl7FhirR4Core/Device.cs index d335b61d5..aa39b6853 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Device.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Device.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/DeviceDefinition.cs b/examples/csharp/generated/Hl7FhirR4Core/DeviceDefinition.cs index a13cce3e9..c79cfdf57 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/DeviceDefinition.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/DeviceDefinition.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/DeviceMetric.cs b/examples/csharp/generated/Hl7FhirR4Core/DeviceMetric.cs index c568a4ba0..7ce499445 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/DeviceMetric.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/DeviceMetric.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/DeviceRequest.cs b/examples/csharp/generated/Hl7FhirR4Core/DeviceRequest.cs index 38e44984d..f21d7a23e 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/DeviceRequest.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/DeviceRequest.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/DeviceUseStatement.cs b/examples/csharp/generated/Hl7FhirR4Core/DeviceUseStatement.cs index a1ff36329..1bd4733e6 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/DeviceUseStatement.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/DeviceUseStatement.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/DiagnosticReport.cs b/examples/csharp/generated/Hl7FhirR4Core/DiagnosticReport.cs index 9373bf9f3..14e803946 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/DiagnosticReport.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/DiagnosticReport.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/DocumentManifest.cs b/examples/csharp/generated/Hl7FhirR4Core/DocumentManifest.cs index 059858383..230440dd5 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/DocumentManifest.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/DocumentManifest.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/DocumentReference.cs b/examples/csharp/generated/Hl7FhirR4Core/DocumentReference.cs index ce6fd0ffd..b695c671e 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/DocumentReference.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/DocumentReference.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/DomainResource.cs b/examples/csharp/generated/Hl7FhirR4Core/DomainResource.cs index be78b0933..32684887f 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/DomainResource.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/DomainResource.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/EffectEvidenceSynthesis.cs b/examples/csharp/generated/Hl7FhirR4Core/EffectEvidenceSynthesis.cs index 35a57df39..644cd3d7b 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/EffectEvidenceSynthesis.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/EffectEvidenceSynthesis.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Encounter.cs b/examples/csharp/generated/Hl7FhirR4Core/Encounter.cs index cc84256c9..e9b2cf51d 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Encounter.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Encounter.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Endpoint.cs b/examples/csharp/generated/Hl7FhirR4Core/Endpoint.cs index 15e3da914..b4dc16bda 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Endpoint.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Endpoint.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/EnrollmentRequest.cs b/examples/csharp/generated/Hl7FhirR4Core/EnrollmentRequest.cs index 9da61a4bc..c5510d0af 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/EnrollmentRequest.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/EnrollmentRequest.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/EnrollmentResponse.cs b/examples/csharp/generated/Hl7FhirR4Core/EnrollmentResponse.cs index c913deb79..8992ab9a3 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/EnrollmentResponse.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/EnrollmentResponse.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/EpisodeOfCare.cs b/examples/csharp/generated/Hl7FhirR4Core/EpisodeOfCare.cs index f647d069d..d9e09181e 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/EpisodeOfCare.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/EpisodeOfCare.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Event.cs b/examples/csharp/generated/Hl7FhirR4Core/Event.cs deleted file mode 100644 index d8638530d..000000000 --- a/examples/csharp/generated/Hl7FhirR4Core/Event.cs +++ /dev/null @@ -1,14 +0,0 @@ -// WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories -// Any manual changes made to this file may be overwritten. - - -namespace SuperNameSpace.Hl7FhirR4Core; - -public class Event { - - public override string ToString() => - JsonSerializer.Serialize(this, Helper.JsonSerializerOptions); - -} - diff --git a/examples/csharp/generated/Hl7FhirR4Core/EventDefinition.cs b/examples/csharp/generated/Hl7FhirR4Core/EventDefinition.cs index 9c6d481ae..17f507304 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/EventDefinition.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/EventDefinition.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Evidence.cs b/examples/csharp/generated/Hl7FhirR4Core/Evidence.cs index a63a7454f..016f44e3b 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Evidence.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Evidence.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/EvidenceVariable.cs b/examples/csharp/generated/Hl7FhirR4Core/EvidenceVariable.cs index 11886bf00..3f9810130 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/EvidenceVariable.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/EvidenceVariable.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ExampleScenario.cs b/examples/csharp/generated/Hl7FhirR4Core/ExampleScenario.cs index b4c6ef7a1..288c2a956 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ExampleScenario.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ExampleScenario.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ExplanationOfBenefit.cs b/examples/csharp/generated/Hl7FhirR4Core/ExplanationOfBenefit.cs index 171d4b98c..a0ee780e9 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ExplanationOfBenefit.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ExplanationOfBenefit.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/FamilyMemberHistory.cs b/examples/csharp/generated/Hl7FhirR4Core/FamilyMemberHistory.cs index 5390e7690..ebab56b6f 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/FamilyMemberHistory.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/FamilyMemberHistory.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/FiveWs.cs b/examples/csharp/generated/Hl7FhirR4Core/FiveWs.cs deleted file mode 100644 index 1f3d9e52d..000000000 --- a/examples/csharp/generated/Hl7FhirR4Core/FiveWs.cs +++ /dev/null @@ -1,14 +0,0 @@ -// WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories -// Any manual changes made to this file may be overwritten. - - -namespace SuperNameSpace.Hl7FhirR4Core; - -public class FiveWs { - - public override string ToString() => - JsonSerializer.Serialize(this, Helper.JsonSerializerOptions); - -} - diff --git a/examples/csharp/generated/Hl7FhirR4Core/Flag.cs b/examples/csharp/generated/Hl7FhirR4Core/Flag.cs index d1487607a..9d4a96a39 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Flag.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Flag.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Goal.cs b/examples/csharp/generated/Hl7FhirR4Core/Goal.cs index e4155950a..83db0a448 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Goal.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Goal.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/GraphDefinition.cs b/examples/csharp/generated/Hl7FhirR4Core/GraphDefinition.cs index d61127d84..3622c68e9 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/GraphDefinition.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/GraphDefinition.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Group.cs b/examples/csharp/generated/Hl7FhirR4Core/Group.cs index d79df0f3e..a3eb8013e 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Group.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Group.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/GuidanceResponse.cs b/examples/csharp/generated/Hl7FhirR4Core/GuidanceResponse.cs index ca5fec891..f6e0e5c05 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/GuidanceResponse.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/GuidanceResponse.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/HealthcareService.cs b/examples/csharp/generated/Hl7FhirR4Core/HealthcareService.cs index f776cac2c..42e24889a 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/HealthcareService.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/HealthcareService.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Hl7FhirR4CoreEnums.cs b/examples/csharp/generated/Hl7FhirR4Core/Hl7FhirR4CoreEnums.cs index 2688bf0d5..59226fc59 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Hl7FhirR4CoreEnums.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Hl7FhirR4CoreEnums.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. using System.ComponentModel; diff --git a/examples/csharp/generated/Hl7FhirR4Core/ImagingStudy.cs b/examples/csharp/generated/Hl7FhirR4Core/ImagingStudy.cs index b1e0de0c9..3fdb7ab48 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ImagingStudy.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ImagingStudy.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Immunization.cs b/examples/csharp/generated/Hl7FhirR4Core/Immunization.cs index 86a8a98c6..7fc6bcedb 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Immunization.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Immunization.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ImmunizationEvaluation.cs b/examples/csharp/generated/Hl7FhirR4Core/ImmunizationEvaluation.cs index 1e0fb3aaa..1225d040a 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ImmunizationEvaluation.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ImmunizationEvaluation.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ImmunizationRecommendation.cs b/examples/csharp/generated/Hl7FhirR4Core/ImmunizationRecommendation.cs index 4316526f6..c84e340bb 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ImmunizationRecommendation.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ImmunizationRecommendation.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ImplementationGuide.cs b/examples/csharp/generated/Hl7FhirR4Core/ImplementationGuide.cs index c690f3bc1..51f394858 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ImplementationGuide.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ImplementationGuide.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/InsurancePlan.cs b/examples/csharp/generated/Hl7FhirR4Core/InsurancePlan.cs index 0d9b6fcf6..4ca65ac83 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/InsurancePlan.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/InsurancePlan.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Invoice.cs b/examples/csharp/generated/Hl7FhirR4Core/Invoice.cs index 9127b17f5..c0b999732 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Invoice.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Invoice.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Library.cs b/examples/csharp/generated/Hl7FhirR4Core/Library.cs index 43865d1e1..5597dc1e4 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Library.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Library.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Linkage.cs b/examples/csharp/generated/Hl7FhirR4Core/Linkage.cs index 450c55265..85890df76 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Linkage.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Linkage.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/List.cs b/examples/csharp/generated/Hl7FhirR4Core/List.cs index 36371a089..ad173fadb 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/List.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/List.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Location.cs b/examples/csharp/generated/Hl7FhirR4Core/Location.cs index df67f40a6..5d41e574a 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Location.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Location.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Measure.cs b/examples/csharp/generated/Hl7FhirR4Core/Measure.cs index 8f9986964..266499ff8 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Measure.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Measure.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MeasureReport.cs b/examples/csharp/generated/Hl7FhirR4Core/MeasureReport.cs index 68be93a5d..213e97b97 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MeasureReport.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MeasureReport.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Media.cs b/examples/csharp/generated/Hl7FhirR4Core/Media.cs index 3ab755480..02ed1c0ca 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Media.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Media.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Medication.cs b/examples/csharp/generated/Hl7FhirR4Core/Medication.cs index 977e07192..bc7261374 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Medication.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Medication.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MedicationAdministration.cs b/examples/csharp/generated/Hl7FhirR4Core/MedicationAdministration.cs index 17ddc30c0..58aaa1448 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MedicationAdministration.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MedicationAdministration.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MedicationDispense.cs b/examples/csharp/generated/Hl7FhirR4Core/MedicationDispense.cs index df3559ecd..be82e277d 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MedicationDispense.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MedicationDispense.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MedicationKnowledge.cs b/examples/csharp/generated/Hl7FhirR4Core/MedicationKnowledge.cs index f7f181e28..1015a8c4d 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MedicationKnowledge.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MedicationKnowledge.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MedicationRequest.cs b/examples/csharp/generated/Hl7FhirR4Core/MedicationRequest.cs index 6dfb30280..ee932a72b 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MedicationRequest.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MedicationRequest.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MedicationStatement.cs b/examples/csharp/generated/Hl7FhirR4Core/MedicationStatement.cs index df7eb989b..634889032 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MedicationStatement.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MedicationStatement.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProduct.cs b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProduct.cs index 4e74ebfd7..463ba8e02 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProduct.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProduct.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductAuthorization.cs b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductAuthorization.cs index a55baa209..0e3a983a8 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductAuthorization.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductAuthorization.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductContraindication.cs b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductContraindication.cs index 1684575ec..9f32ddba3 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductContraindication.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductContraindication.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductIndication.cs b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductIndication.cs index e74958e25..4d8120372 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductIndication.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductIndication.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductIngredient.cs b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductIngredient.cs index 1628ca013..fd3f139c3 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductIngredient.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductIngredient.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductInteraction.cs b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductInteraction.cs index 241a858b5..f66a8e968 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductInteraction.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductInteraction.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductManufactured.cs b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductManufactured.cs index 75d3dc43b..2e3ea0987 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductManufactured.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductManufactured.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductPackaged.cs b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductPackaged.cs index ed4a81b14..7030bdc86 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductPackaged.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductPackaged.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductPharmaceutical.cs b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductPharmaceutical.cs index 12f78b765..e51a94745 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductPharmaceutical.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductPharmaceutical.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductUndesirableEffect.cs b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductUndesirableEffect.cs index 562cc578d..db4f011a7 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductUndesirableEffect.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MedicinalProductUndesirableEffect.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MessageDefinition.cs b/examples/csharp/generated/Hl7FhirR4Core/MessageDefinition.cs index 5785c2ca5..6c24d4ecc 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MessageDefinition.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MessageDefinition.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MessageHeader.cs b/examples/csharp/generated/Hl7FhirR4Core/MessageHeader.cs index 8d36ecd8e..d7ff0f387 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MessageHeader.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MessageHeader.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/MetadataResource.cs b/examples/csharp/generated/Hl7FhirR4Core/MetadataResource.cs deleted file mode 100644 index ac7e7f1ac..000000000 --- a/examples/csharp/generated/Hl7FhirR4Core/MetadataResource.cs +++ /dev/null @@ -1,26 +0,0 @@ -// WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories -// Any manual changes made to this file may be overwritten. - - -namespace SuperNameSpace.Hl7FhirR4Core; - -public class MetadataResource : DomainResource { - public ContactDetail[]? Contact { get; set; } - public string? Date { get; set; } - public string? Description { get; set; } - public bool? Experimental { get; set; } - public CodeableConcept[]? Jurisdiction { get; set; } - public string? Name { get; set; } - public string? Publisher { get; set; } - public required PublicationStatusEnum Status { get; set; } - public string? Title { get; set; } - public string? Url { get; set; } - public UsageContext[]? UseContext { get; set; } - public string? Version { get; set; } - - public override string ToString() => - JsonSerializer.Serialize(this, Helper.JsonSerializerOptions); - -} - diff --git a/examples/csharp/generated/Hl7FhirR4Core/MolecularSequence.cs b/examples/csharp/generated/Hl7FhirR4Core/MolecularSequence.cs index 1134e77ea..e3b8736eb 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/MolecularSequence.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/MolecularSequence.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/NamingSystem.cs b/examples/csharp/generated/Hl7FhirR4Core/NamingSystem.cs index cfba2eb15..56566d52a 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/NamingSystem.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/NamingSystem.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/NutritionOrder.cs b/examples/csharp/generated/Hl7FhirR4Core/NutritionOrder.cs index 2a772f2e7..76e8cffab 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/NutritionOrder.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/NutritionOrder.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Observation.cs b/examples/csharp/generated/Hl7FhirR4Core/Observation.cs index 1bd67bba6..be52f9b19 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Observation.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Observation.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ObservationDefinition.cs b/examples/csharp/generated/Hl7FhirR4Core/ObservationDefinition.cs index c9ab2bfa9..1b39957d7 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ObservationDefinition.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ObservationDefinition.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/OperationDefinition.cs b/examples/csharp/generated/Hl7FhirR4Core/OperationDefinition.cs index dd0325a94..c40db4731 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/OperationDefinition.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/OperationDefinition.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/OperationOutcome.cs b/examples/csharp/generated/Hl7FhirR4Core/OperationOutcome.cs index db6a9851e..ac5feab2b 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/OperationOutcome.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/OperationOutcome.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Organization.cs b/examples/csharp/generated/Hl7FhirR4Core/Organization.cs index c6eff6396..c308e6aad 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Organization.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Organization.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/OrganizationAffiliation.cs b/examples/csharp/generated/Hl7FhirR4Core/OrganizationAffiliation.cs index afab936c5..94516c581 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/OrganizationAffiliation.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/OrganizationAffiliation.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Parameters.cs b/examples/csharp/generated/Hl7FhirR4Core/Parameters.cs index 90a1347cf..a2d4c83ab 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Parameters.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Parameters.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Patient.cs b/examples/csharp/generated/Hl7FhirR4Core/Patient.cs index d62c1cd9c..6303efca8 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Patient.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Patient.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/PaymentNotice.cs b/examples/csharp/generated/Hl7FhirR4Core/PaymentNotice.cs index 0b3fc90dd..3e34bb5a1 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/PaymentNotice.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/PaymentNotice.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/PaymentReconciliation.cs b/examples/csharp/generated/Hl7FhirR4Core/PaymentReconciliation.cs index 9f8d0f1d7..2022a908d 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/PaymentReconciliation.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/PaymentReconciliation.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Person.cs b/examples/csharp/generated/Hl7FhirR4Core/Person.cs index 070c2bd2f..a0ccd0f01 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Person.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Person.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/PlanDefinition.cs b/examples/csharp/generated/Hl7FhirR4Core/PlanDefinition.cs index 3c9c336b4..3e791ab7f 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/PlanDefinition.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/PlanDefinition.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Practitioner.cs b/examples/csharp/generated/Hl7FhirR4Core/Practitioner.cs index dfe42bb66..713a9e564 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Practitioner.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Practitioner.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/PractitionerRole.cs b/examples/csharp/generated/Hl7FhirR4Core/PractitionerRole.cs index c1e197b75..5ec2e20bf 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/PractitionerRole.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/PractitionerRole.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Procedure.cs b/examples/csharp/generated/Hl7FhirR4Core/Procedure.cs index 3e3006122..0451f07f2 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Procedure.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Procedure.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Provenance.cs b/examples/csharp/generated/Hl7FhirR4Core/Provenance.cs index 84e2089a2..ef87e9531 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Provenance.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Provenance.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Questionnaire.cs b/examples/csharp/generated/Hl7FhirR4Core/Questionnaire.cs index e366a0d9d..adb680c39 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Questionnaire.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Questionnaire.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/QuestionnaireResponse.cs b/examples/csharp/generated/Hl7FhirR4Core/QuestionnaireResponse.cs index 5be388539..e7c9ea6c6 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/QuestionnaireResponse.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/QuestionnaireResponse.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/RelatedPerson.cs b/examples/csharp/generated/Hl7FhirR4Core/RelatedPerson.cs index 1fc6a25c6..337fc4cf5 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/RelatedPerson.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/RelatedPerson.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Request.cs b/examples/csharp/generated/Hl7FhirR4Core/Request.cs deleted file mode 100644 index b6fd882a2..000000000 --- a/examples/csharp/generated/Hl7FhirR4Core/Request.cs +++ /dev/null @@ -1,14 +0,0 @@ -// WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories -// Any manual changes made to this file may be overwritten. - - -namespace SuperNameSpace.Hl7FhirR4Core; - -public class Request { - - public override string ToString() => - JsonSerializer.Serialize(this, Helper.JsonSerializerOptions); - -} - diff --git a/examples/csharp/generated/Hl7FhirR4Core/RequestGroup.cs b/examples/csharp/generated/Hl7FhirR4Core/RequestGroup.cs index bd54032df..c86dfd434 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/RequestGroup.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/RequestGroup.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ResearchDefinition.cs b/examples/csharp/generated/Hl7FhirR4Core/ResearchDefinition.cs index 2ab8e79c5..cb7feee7b 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ResearchDefinition.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ResearchDefinition.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ResearchElementDefinition.cs b/examples/csharp/generated/Hl7FhirR4Core/ResearchElementDefinition.cs index 9ea2e8cda..beacf082a 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ResearchElementDefinition.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ResearchElementDefinition.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ResearchStudy.cs b/examples/csharp/generated/Hl7FhirR4Core/ResearchStudy.cs index aa1ca279b..676af16fc 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ResearchStudy.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ResearchStudy.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ResearchSubject.cs b/examples/csharp/generated/Hl7FhirR4Core/ResearchSubject.cs index 750026a9b..82fcfcc40 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ResearchSubject.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ResearchSubject.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Resource.cs b/examples/csharp/generated/Hl7FhirR4Core/Resource.cs index a8b47d9dd..7282e52d8 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Resource.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Resource.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/RiskAssessment.cs b/examples/csharp/generated/Hl7FhirR4Core/RiskAssessment.cs index 154e2b477..fde4ad4bd 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/RiskAssessment.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/RiskAssessment.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/RiskEvidenceSynthesis.cs b/examples/csharp/generated/Hl7FhirR4Core/RiskEvidenceSynthesis.cs index 084eb3c08..1665140e5 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/RiskEvidenceSynthesis.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/RiskEvidenceSynthesis.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Schedule.cs b/examples/csharp/generated/Hl7FhirR4Core/Schedule.cs index 282caef9b..bfa31a205 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Schedule.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Schedule.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/SearchParameter.cs b/examples/csharp/generated/Hl7FhirR4Core/SearchParameter.cs index b54f9c475..3ce204795 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/SearchParameter.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/SearchParameter.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ServiceRequest.cs b/examples/csharp/generated/Hl7FhirR4Core/ServiceRequest.cs index 1bc4483e3..13d102b89 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ServiceRequest.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ServiceRequest.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Slot.cs b/examples/csharp/generated/Hl7FhirR4Core/Slot.cs index 05a86d9fa..ee5f65fc1 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Slot.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Slot.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Specimen.cs b/examples/csharp/generated/Hl7FhirR4Core/Specimen.cs index 5af1e7b1b..5b1402659 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Specimen.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Specimen.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/SpecimenDefinition.cs b/examples/csharp/generated/Hl7FhirR4Core/SpecimenDefinition.cs index c06882047..353cbcfe0 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/SpecimenDefinition.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/SpecimenDefinition.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/StructureDefinition.cs b/examples/csharp/generated/Hl7FhirR4Core/StructureDefinition.cs index 2a4d9cf1d..8b7039b52 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/StructureDefinition.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/StructureDefinition.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/StructureMap.cs b/examples/csharp/generated/Hl7FhirR4Core/StructureMap.cs index cddc87dc9..81b1ba659 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/StructureMap.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/StructureMap.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Subscription.cs b/examples/csharp/generated/Hl7FhirR4Core/Subscription.cs index 68743fed9..6535c17af 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Subscription.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Subscription.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Substance.cs b/examples/csharp/generated/Hl7FhirR4Core/Substance.cs index 5e4daebc9..45d708e03 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Substance.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Substance.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/SubstanceNucleicAcid.cs b/examples/csharp/generated/Hl7FhirR4Core/SubstanceNucleicAcid.cs index 71b3602e7..73f54f6a1 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/SubstanceNucleicAcid.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/SubstanceNucleicAcid.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/SubstancePolymer.cs b/examples/csharp/generated/Hl7FhirR4Core/SubstancePolymer.cs index a23449548..3c3a9796b 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/SubstancePolymer.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/SubstancePolymer.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/SubstanceProtein.cs b/examples/csharp/generated/Hl7FhirR4Core/SubstanceProtein.cs index d55b8ba21..23b46f3f6 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/SubstanceProtein.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/SubstanceProtein.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/SubstanceReferenceInformation.cs b/examples/csharp/generated/Hl7FhirR4Core/SubstanceReferenceInformation.cs index 4e31c5b20..7977deb6e 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/SubstanceReferenceInformation.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/SubstanceReferenceInformation.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/SubstanceSourceMaterial.cs b/examples/csharp/generated/Hl7FhirR4Core/SubstanceSourceMaterial.cs index 9b35c53ce..59351d327 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/SubstanceSourceMaterial.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/SubstanceSourceMaterial.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/SubstanceSpecification.cs b/examples/csharp/generated/Hl7FhirR4Core/SubstanceSpecification.cs index c3d766857..da6ddea32 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/SubstanceSpecification.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/SubstanceSpecification.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/SupplyDelivery.cs b/examples/csharp/generated/Hl7FhirR4Core/SupplyDelivery.cs index c70a8674a..fe9754486 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/SupplyDelivery.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/SupplyDelivery.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/SupplyRequest.cs b/examples/csharp/generated/Hl7FhirR4Core/SupplyRequest.cs index 62ebc1a6a..bf1d1e259 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/SupplyRequest.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/SupplyRequest.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/Task.cs b/examples/csharp/generated/Hl7FhirR4Core/Task.cs index 6d8f9590a..026d75f75 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/Task.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/Task.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/TerminologyCapabilities.cs b/examples/csharp/generated/Hl7FhirR4Core/TerminologyCapabilities.cs index 1824da80a..2fbeccaee 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/TerminologyCapabilities.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/TerminologyCapabilities.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/TestReport.cs b/examples/csharp/generated/Hl7FhirR4Core/TestReport.cs index 4648e8b3a..cc8329e14 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/TestReport.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/TestReport.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/TestScript.cs b/examples/csharp/generated/Hl7FhirR4Core/TestScript.cs index 87c821ffc..00e486a75 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/TestScript.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/TestScript.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/ValueSet.cs b/examples/csharp/generated/Hl7FhirR4Core/ValueSet.cs index 4e208ca81..0cb21da75 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/ValueSet.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/ValueSet.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/VerificationResult.cs b/examples/csharp/generated/Hl7FhirR4Core/VerificationResult.cs index b04724bdd..093a170c6 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/VerificationResult.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/VerificationResult.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4Core/VisionPrescription.cs b/examples/csharp/generated/Hl7FhirR4Core/VisionPrescription.cs index f5db46d84..4aafd6d08 100644 --- a/examples/csharp/generated/Hl7FhirR4Core/VisionPrescription.cs +++ b/examples/csharp/generated/Hl7FhirR4Core/VisionPrescription.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/csharp/generated/Hl7FhirR4CoreResourceDictionary.cs b/examples/csharp/generated/Hl7FhirR4CoreResourceDictionary.cs index 2f080dc31..f6e92b416 100644 --- a/examples/csharp/generated/Hl7FhirR4CoreResourceDictionary.cs +++ b/examples/csharp/generated/Hl7FhirR4CoreResourceDictionary.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. @@ -39,7 +39,6 @@ public static class ResourceDictionary { { typeof(Hl7FhirR4Core.Coverage), "Coverage" }, { typeof(Hl7FhirR4Core.CoverageEligibilityRequest), "CoverageEligibilityRequest" }, { typeof(Hl7FhirR4Core.CoverageEligibilityResponse), "CoverageEligibilityResponse" }, - { typeof(Hl7FhirR4Core.Definition), "Definition" }, { typeof(Hl7FhirR4Core.DetectedIssue), "DetectedIssue" }, { typeof(Hl7FhirR4Core.Device), "Device" }, { typeof(Hl7FhirR4Core.DeviceDefinition), "DeviceDefinition" }, @@ -56,14 +55,12 @@ public static class ResourceDictionary { { typeof(Hl7FhirR4Core.EnrollmentRequest), "EnrollmentRequest" }, { typeof(Hl7FhirR4Core.EnrollmentResponse), "EnrollmentResponse" }, { typeof(Hl7FhirR4Core.EpisodeOfCare), "EpisodeOfCare" }, - { typeof(Hl7FhirR4Core.Event), "Event" }, { typeof(Hl7FhirR4Core.EventDefinition), "EventDefinition" }, { typeof(Hl7FhirR4Core.Evidence), "Evidence" }, { typeof(Hl7FhirR4Core.EvidenceVariable), "EvidenceVariable" }, { typeof(Hl7FhirR4Core.ExampleScenario), "ExampleScenario" }, { typeof(Hl7FhirR4Core.ExplanationOfBenefit), "ExplanationOfBenefit" }, { typeof(Hl7FhirR4Core.FamilyMemberHistory), "FamilyMemberHistory" }, - { typeof(Hl7FhirR4Core.FiveWs), "FiveWs" }, { typeof(Hl7FhirR4Core.Flag), "Flag" }, { typeof(Hl7FhirR4Core.Goal), "Goal" }, { typeof(Hl7FhirR4Core.GraphDefinition), "GraphDefinition" }, @@ -102,7 +99,6 @@ public static class ResourceDictionary { { typeof(Hl7FhirR4Core.MedicinalProductUndesirableEffect), "MedicinalProductUndesirableEffect" }, { typeof(Hl7FhirR4Core.MessageDefinition), "MessageDefinition" }, { typeof(Hl7FhirR4Core.MessageHeader), "MessageHeader" }, - { typeof(Hl7FhirR4Core.MetadataResource), "MetadataResource" }, { typeof(Hl7FhirR4Core.MolecularSequence), "MolecularSequence" }, { typeof(Hl7FhirR4Core.NamingSystem), "NamingSystem" }, { typeof(Hl7FhirR4Core.NutritionOrder), "NutritionOrder" }, @@ -125,7 +121,6 @@ public static class ResourceDictionary { { typeof(Hl7FhirR4Core.Questionnaire), "Questionnaire" }, { typeof(Hl7FhirR4Core.QuestionnaireResponse), "QuestionnaireResponse" }, { typeof(Hl7FhirR4Core.RelatedPerson), "RelatedPerson" }, - { typeof(Hl7FhirR4Core.Request), "Request" }, { typeof(Hl7FhirR4Core.RequestGroup), "RequestGroup" }, { typeof(Hl7FhirR4Core.ResearchDefinition), "ResearchDefinition" }, { typeof(Hl7FhirR4Core.ResearchElementDefinition), "ResearchElementDefinition" }, diff --git a/examples/csharp/generated/Usings.cs b/examples/csharp/generated/Usings.cs index 0e4e6b850..134ca0df6 100644 --- a/examples/csharp/generated/Usings.cs +++ b/examples/csharp/generated/Usings.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. global using CSharpSDK; diff --git a/examples/csharp/generated/base.cs b/examples/csharp/generated/base.cs index 801d87044..f617bce29 100644 --- a/examples/csharp/generated/base.cs +++ b/examples/csharp/generated/base.cs @@ -1,5 +1,5 @@ // WARNING: This file is autogenerated by @atomic-ehr/codegen. -// GitHub: https://github.com/orgs/atomic-ehr/repositories +// GitHub: https://github.com/atomic-ehr/codegen // Any manual changes made to this file may be overwritten. diff --git a/examples/python/client.py b/examples/python/client.py new file mode 100644 index 000000000..2bb4bc0a2 --- /dev/null +++ b/examples/python/client.py @@ -0,0 +1,106 @@ +import base64 +import json +from typing import TypeVar, Type, Dict, Any +import requests +from pydantic import BaseModel +from generated.hl7_fhir_r4_core import DomainResource, Bundle + + +T = TypeVar("T", bound=DomainResource) + + +class AuthCredentials(BaseModel): + username: str + password: str + + +class Auth(BaseModel): + method: str + credentials: AuthCredentials + + +def to_camel_case(snake_str: str) -> str: + """Convert snake_case to camelCase""" + components = snake_str.split("_") + return components[0] + "".join(x.title() for x in components[1:]) + + +class Client: + def __init__( + self, + base_url: str, + auth: Auth | None = None, + ): + self.base_url = base_url.rstrip("/") + self.session = requests.Session() + if auth: + if auth.method == "basic": + self._set_basic_auth( + auth.credentials.username, auth.credentials.password + ) + else: + raise ValueError(f"Unsupported auth method: {auth.method}") + + def _set_basic_auth(self, username: str, password: str) -> None: + """Set basic authentication headers""" + credentials = f"{username}:{password}" + encoded = base64.b64encode(credentials.encode()).decode() + self.session.headers.update({"Authorization": f"Basic {encoded}"}) + + def _get_resource_type(self, resource: DomainResource) -> str: + """Get the resource type from the class name""" + return resource.__class__.__name__ + + def create(self, resource: T) -> T: + """Create a new resource""" + resource_type = self._get_resource_type(resource) + url = f"{self.base_url}/{resource_type}" + data = resource.model_dump(exclude_unset=True, exclude_none=True) + response = self.session.post(url, json=data) + response.raise_for_status() + data = response.json() + if not data.get("id"): + raise ValueError("Response missing required 'id' field") + return resource.__class__.model_validate(data) + + def read(self, resource_class: Type[T], resource_id: str) -> T: + """Read a resource by ID""" + resource_type = resource_class.__name__ + url = f"{self.base_url}/{resource_type}/{resource_id}" + response = self.session.get(url) + response.raise_for_status() + data = response.json() + if not data.get("id"): + raise ValueError("Response missing required 'id' field") + return resource_class.model_validate(data) + + def update(self, resource: T) -> T: + """Update an existing resource""" + resource_type = self._get_resource_type(resource) + if not hasattr(resource, "id") or not resource.id: + raise ValueError("Resource must have an ID for update") + + url = f"{self.base_url}/{resource_type}/{resource.id}" + data = resource.model_dump(exclude_unset=True, exclude_none=True) + response = self.session.put(url, json=data) + response.raise_for_status() + data = response.json() + if not data.get("id"): + raise ValueError("Response missing required 'id' field") + return resource.__class__.model_validate(data) + + def delete(self, resource_type: str, resource_id: str) -> None: + """Delete a resource""" + url = f"{self.base_url}/{resource_type}/{resource_id}" + response = self.session.delete(url) + response.raise_for_status() + + def search( + self, resource_class: Type[T], params: Dict[str, Any] | None = None + ) -> Bundle: + """Search for resources""" + resource_type = resource_class.__name__ + url = f"{self.base_url}/{resource_type}" + response = self.session.get(url, params=params) + response.raise_for_status() + return Bundle.model_validate(response.json()) diff --git a/examples/python/generate.ts b/examples/python/generate.ts new file mode 100644 index 000000000..691eca4ab --- /dev/null +++ b/examples/python/generate.ts @@ -0,0 +1,30 @@ +import { APIBuilder } from "../../src"; + +if (require.main === module) { + console.log("📦 Generating FHIR R4 Core Types..."); + + const opts = { + allowExtraFields: false, + staticDir: "./src/api/writer-generator/python/static-files", + fieldFormat: "SnakeCase", + }; + + const builder = new APIBuilder() + .verbose() + .throwException() + .fromPackage("hl7.fhir.r4.core", "4.0.1") + .python(opts) + .outputTo("./examples/python/generated") + .cleanOutput(true); + + const report = await builder.generate(); + + console.log(report); + + if (report.success) { + console.log("✅ FHIR R4 types generated successfully!"); + } else { + console.error("❌ FHIR R4 types generation failed."); + process.exit(1); + } +} diff --git a/examples/python/generated/__init__.py b/examples/python/generated/__init__.py new file mode 100644 index 000000000..305326472 --- /dev/null +++ b/examples/python/generated/__init__.py @@ -0,0 +1,1047 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from generated.hl7_fhir_r4_core.base import (\ + Address, Age, Annotation, Attachment, BackboneElement, CodeableConcept, Coding, ContactDetail, ContactPoint, \ + Contributor, Count, DataRequirement, Distance, Dosage, Duration, Element, ElementDefinition, Expression, \ + Extension, HumanName, Identifier, MarketingStatus, Meta, Money, Narrative, ParameterDefinition, Period, \ + Population, ProdCharacteristic, ProductShelfLife, Quantity, Range, Ratio, Reference, RelatedArtifact, \ + SampledData, Signature, SubstanceAmount, Timing, TriggerDefinition, UsageContext +) + +from generated.hl7_fhir_r4_core.account import Account, AccountCoverage, AccountGuarantor +from generated.hl7_fhir_r4_core.activity_definition import (\ + ActivityDefinition, ActivityDefinitionDynamicValue, ActivityDefinitionParticipant +) +from generated.hl7_fhir_r4_core.adverse_event import (\ + AdverseEvent, AdverseEventSuspectEntity, AdverseEventSuspectEntityCausality +) +from generated.hl7_fhir_r4_core.allergy_intolerance import (\ + AllergyIntolerance, AllergyIntoleranceReaction +) +from generated.hl7_fhir_r4_core.appointment import Appointment, AppointmentParticipant +from generated.hl7_fhir_r4_core.appointment_response import AppointmentResponse +from generated.hl7_fhir_r4_core.audit_event import (\ + AuditEvent, AuditEventAgent, AuditEventAgentNetwork, AuditEventEntity, AuditEventEntityDetail, AuditEventSource +) +from generated.hl7_fhir_r4_core.basic import Basic +from generated.hl7_fhir_r4_core.binary import Binary +from generated.hl7_fhir_r4_core.biologically_derived_product import (\ + BiologicallyDerivedProduct, BiologicallyDerivedProductCollection, BiologicallyDerivedProductManipulation, \ + BiologicallyDerivedProductProcessing, BiologicallyDerivedProductStorage +) +from generated.hl7_fhir_r4_core.body_structure import BodyStructure +from generated.hl7_fhir_r4_core.bundle import (\ + Bundle, BundleEntry, BundleEntryRequest, BundleEntryResponse, BundleEntrySearch, BundleLink +) +from generated.hl7_fhir_r4_core.capability_statement import (\ + CapabilityStatement, CapabilityStatementDocument, CapabilityStatementImplementation, CapabilityStatementMessaging, \ + CapabilityStatementMessagingEndpoint, CapabilityStatementMessagingSupportedMessage, CapabilityStatementRest, \ + CapabilityStatementRestInteraction, CapabilityStatementRestResource, CapabilityStatementRestResourceInteraction, \ + CapabilityStatementRestResourceOperation, CapabilityStatementRestResourceSearchParam, CapabilityStatementRestSecurity, \ + CapabilityStatementSoftware +) +from generated.hl7_fhir_r4_core.care_plan import CarePlan, CarePlanActivity, CarePlanActivityDetail +from generated.hl7_fhir_r4_core.care_team import CareTeam, CareTeamParticipant +from generated.hl7_fhir_r4_core.catalog_entry import CatalogEntry, CatalogEntryRelatedEntry +from generated.hl7_fhir_r4_core.charge_item import ChargeItem, ChargeItemPerformer +from generated.hl7_fhir_r4_core.charge_item_definition import (\ + ChargeItemDefinition, ChargeItemDefinitionApplicability, ChargeItemDefinitionPropertyGroup, ChargeItemDefinitionPropertyGroupPriceComponent +) +from generated.hl7_fhir_r4_core.claim import (\ + Claim, ClaimAccident, ClaimCareTeam, ClaimDiagnosis, ClaimInsurance, ClaimItem, ClaimItemDetail, ClaimItemDetailSubDetail, \ + ClaimPayee, ClaimProcedure, ClaimRelated, ClaimSupportingInfo +) +from generated.hl7_fhir_r4_core.claim_response import (\ + ClaimResponse, ClaimResponseAddItem, ClaimResponseAddItemDetail, ClaimResponseAddItemDetailSubDetail, \ + ClaimResponseError, ClaimResponseInsurance, ClaimResponseItem, ClaimResponseItemAdjudication, ClaimResponseItemDetail, \ + ClaimResponseItemDetailSubDetail, ClaimResponsePayment, ClaimResponseProcessNote, ClaimResponseTotal +) +from generated.hl7_fhir_r4_core.clinical_impression import (\ + ClinicalImpression, ClinicalImpressionFinding, ClinicalImpressionInvestigation +) +from generated.hl7_fhir_r4_core.code_system import (\ + CodeSystem, CodeSystemConcept, CodeSystemConceptDesignation, CodeSystemConceptProperty, CodeSystemFilter, \ + CodeSystemProperty +) +from generated.hl7_fhir_r4_core.communication import Communication, CommunicationPayload +from generated.hl7_fhir_r4_core.communication_request import (\ + CommunicationRequest, CommunicationRequestPayload +) +from generated.hl7_fhir_r4_core.compartment_definition import (\ + CompartmentDefinition, CompartmentDefinitionResource +) +from generated.hl7_fhir_r4_core.composition import (\ + Composition, CompositionAttester, CompositionEvent, CompositionRelatesTo, CompositionSection +) +from generated.hl7_fhir_r4_core.concept_map import (\ + ConceptMap, ConceptMapGroup, ConceptMapGroupElement, ConceptMapGroupElementTarget, ConceptMapGroupElementTargetDependsOn, \ + ConceptMapGroupUnmapped +) +from generated.hl7_fhir_r4_core.condition import Condition, ConditionEvidence, ConditionStage +from generated.hl7_fhir_r4_core.consent import (\ + Consent, ConsentPolicy, ConsentProvision, ConsentProvisionActor, ConsentProvisionData, ConsentVerification +) +from generated.hl7_fhir_r4_core.contract import (\ + Contract, ContractContentDefinition, ContractFriendly, ContractLegal, ContractRule, ContractSigner, ContractTerm, \ + ContractTermAction, ContractTermActionSubject, ContractTermAsset, ContractTermAssetContext, ContractTermAssetValuedItem, \ + ContractTermOffer, ContractTermOfferAnswer, ContractTermOfferParty, ContractTermSecurityLabel +) +from generated.hl7_fhir_r4_core.coverage import (\ + Coverage, CoverageClass, CoverageCostToBeneficiary, CoverageCostToBeneficiaryException +) +from generated.hl7_fhir_r4_core.coverage_eligibility_request import (\ + CoverageEligibilityRequest, CoverageEligibilityRequestInsurance, CoverageEligibilityRequestItem, CoverageEligibilityRequestItemDiagnosis, \ + CoverageEligibilityRequestSupportingInfo +) +from generated.hl7_fhir_r4_core.coverage_eligibility_response import (\ + CoverageEligibilityResponse, CoverageEligibilityResponseError, CoverageEligibilityResponseInsurance, CoverageEligibilityResponseInsuranceItem, \ + CoverageEligibilityResponseInsuranceItemBenefit +) +from generated.hl7_fhir_r4_core.detected_issue import (\ + DetectedIssue, DetectedIssueEvidence, DetectedIssueMitigation +) +from generated.hl7_fhir_r4_core.device import (\ + Device, DeviceDeviceName, DeviceProperty, DeviceSpecialization, DeviceUdiCarrier, DeviceVersion +) +from generated.hl7_fhir_r4_core.device_definition import (\ + DeviceDefinition, DeviceDefinitionCapability, DeviceDefinitionDeviceName, DeviceDefinitionMaterial, DeviceDefinitionProperty, \ + DeviceDefinitionSpecialization, DeviceDefinitionUdiDeviceIdentifier +) +from generated.hl7_fhir_r4_core.device_metric import DeviceMetric, DeviceMetricCalibration +from generated.hl7_fhir_r4_core.device_request import DeviceRequest, DeviceRequestParameter +from generated.hl7_fhir_r4_core.device_use_statement import DeviceUseStatement +from generated.hl7_fhir_r4_core.diagnostic_report import DiagnosticReport, DiagnosticReportMedia +from generated.hl7_fhir_r4_core.document_manifest import DocumentManifest, DocumentManifestRelated +from generated.hl7_fhir_r4_core.document_reference import (\ + DocumentReference, DocumentReferenceContent, DocumentReferenceContext, DocumentReferenceRelatesTo +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily +from generated.hl7_fhir_r4_core.effect_evidence_synthesis import (\ + EffectEvidenceSynthesis, EffectEvidenceSynthesisCertainty, EffectEvidenceSynthesisCertaintyCertaintySubcomponent, \ + EffectEvidenceSynthesisEffectEstimate, EffectEvidenceSynthesisEffectEstimatePrecisionEstimate, EffectEvidenceSynthesisResultsByExposure, \ + EffectEvidenceSynthesisSampleSize +) +from generated.hl7_fhir_r4_core.encounter import (\ + Encounter, EncounterClassHistory, EncounterDiagnosis, EncounterHospitalization, EncounterLocation, EncounterParticipant, \ + EncounterStatusHistory +) +from generated.hl7_fhir_r4_core.endpoint import Endpoint +from generated.hl7_fhir_r4_core.enrollment_request import EnrollmentRequest +from generated.hl7_fhir_r4_core.enrollment_response import EnrollmentResponse +from generated.hl7_fhir_r4_core.episode_of_care import (\ + EpisodeOfCare, EpisodeOfCareDiagnosis, EpisodeOfCareStatusHistory +) +from generated.hl7_fhir_r4_core.event_definition import EventDefinition +from generated.hl7_fhir_r4_core.evidence import Evidence +from generated.hl7_fhir_r4_core.evidence_variable import (\ + EvidenceVariable, EvidenceVariableCharacteristic +) +from generated.hl7_fhir_r4_core.example_scenario import (\ + ExampleScenario, ExampleScenarioActor, ExampleScenarioInstance, ExampleScenarioInstanceContainedInstance, \ + ExampleScenarioInstanceVersion, ExampleScenarioProcess, ExampleScenarioProcessStep, ExampleScenarioProcessStepAlternative, \ + ExampleScenarioProcessStepOperation +) +from generated.hl7_fhir_r4_core.explanation_of_benefit import (\ + ExplanationOfBenefit, ExplanationOfBenefitAccident, ExplanationOfBenefitAddItem, ExplanationOfBenefitAddItemDetail, \ + ExplanationOfBenefitAddItemDetailSubDetail, ExplanationOfBenefitBenefitBalance, ExplanationOfBenefitBenefitBalanceFinancial, \ + ExplanationOfBenefitCareTeam, ExplanationOfBenefitDiagnosis, ExplanationOfBenefitInsurance, ExplanationOfBenefitItem, \ + ExplanationOfBenefitItemAdjudication, ExplanationOfBenefitItemDetail, ExplanationOfBenefitItemDetailSubDetail, \ + ExplanationOfBenefitPayee, ExplanationOfBenefitPayment, ExplanationOfBenefitProcedure, ExplanationOfBenefitProcessNote, \ + ExplanationOfBenefitRelated, ExplanationOfBenefitSupportingInfo, ExplanationOfBenefitTotal +) +from generated.hl7_fhir_r4_core.family_member_history import (\ + FamilyMemberHistory, FamilyMemberHistoryCondition +) +from generated.hl7_fhir_r4_core.flag import Flag +from generated.hl7_fhir_r4_core.goal import Goal, GoalTarget +from generated.hl7_fhir_r4_core.graph_definition import (\ + GraphDefinition, GraphDefinitionLink, GraphDefinitionLinkTarget, GraphDefinitionLinkTargetCompartment +) +from generated.hl7_fhir_r4_core.group import Group, GroupCharacteristic, GroupMember +from generated.hl7_fhir_r4_core.guidance_response import GuidanceResponse +from generated.hl7_fhir_r4_core.healthcare_service import (\ + HealthcareService, HealthcareServiceAvailableTime, HealthcareServiceEligibility, HealthcareServiceNotAvailable +) +from generated.hl7_fhir_r4_core.imaging_study import (\ + ImagingStudy, ImagingStudySeries, ImagingStudySeriesInstance, ImagingStudySeriesPerformer +) +from generated.hl7_fhir_r4_core.immunization import (\ + Immunization, ImmunizationEducation, ImmunizationPerformer, ImmunizationProtocolApplied, ImmunizationReaction +) +from generated.hl7_fhir_r4_core.immunization_evaluation import ImmunizationEvaluation +from generated.hl7_fhir_r4_core.immunization_recommendation import (\ + ImmunizationRecommendation, ImmunizationRecommendationRecommendation, ImmunizationRecommendationRecommendationDateCriterion +) +from generated.hl7_fhir_r4_core.implementation_guide import (\ + ImplementationGuide, ImplementationGuideDefinition, ImplementationGuideDefinitionGrouping, ImplementationGuideDefinitionPage, \ + ImplementationGuideDefinitionParameter, ImplementationGuideDefinitionResource, ImplementationGuideDefinitionTemplate, \ + ImplementationGuideDependsOn, ImplementationGuideGlobal, ImplementationGuideManifest, ImplementationGuideManifestPage, \ + ImplementationGuideManifestResource +) +from generated.hl7_fhir_r4_core.insurance_plan import (\ + InsurancePlan, InsurancePlanContact, InsurancePlanCoverage, InsurancePlanCoverageBenefit, InsurancePlanCoverageBenefitLimit, \ + InsurancePlanPlan, InsurancePlanPlanGeneralCost, InsurancePlanPlanSpecificCost, InsurancePlanPlanSpecificCostBenefit, \ + InsurancePlanPlanSpecificCostBenefitCost +) +from generated.hl7_fhir_r4_core.invoice import (\ + Invoice, InvoiceLineItem, InvoiceLineItemPriceComponent, InvoiceParticipant +) +from generated.hl7_fhir_r4_core.library import Library +from generated.hl7_fhir_r4_core.linkage import Linkage, LinkageItem +from generated.hl7_fhir_r4_core.list import List, ListEntry +from generated.hl7_fhir_r4_core.location import Location, LocationHoursOfOperation, LocationPosition +from generated.hl7_fhir_r4_core.measure import (\ + Measure, MeasureGroup, MeasureGroupPopulation, MeasureGroupStratifier, MeasureGroupStratifierComponent, \ + MeasureSupplementalData +) +from generated.hl7_fhir_r4_core.measure_report import (\ + MeasureReport, MeasureReportGroup, MeasureReportGroupPopulation, MeasureReportGroupStratifier, MeasureReportGroupStratifierStratum, \ + MeasureReportGroupStratifierStratumComponent, MeasureReportGroupStratifierStratumPopulation +) +from generated.hl7_fhir_r4_core.media import Media +from generated.hl7_fhir_r4_core.medication import Medication, MedicationBatch, MedicationIngredient +from generated.hl7_fhir_r4_core.medication_administration import (\ + MedicationAdministration, MedicationAdministrationDosage, MedicationAdministrationPerformer +) +from generated.hl7_fhir_r4_core.medication_dispense import (\ + MedicationDispense, MedicationDispensePerformer, MedicationDispenseSubstitution +) +from generated.hl7_fhir_r4_core.medication_knowledge import (\ + MedicationKnowledge, MedicationKnowledgeAdministrationGuidelines, MedicationKnowledgeAdministrationGuidelinesDosage, \ + MedicationKnowledgeAdministrationGuidelinesPatientCharacteristics, MedicationKnowledgeCost, MedicationKnowledgeDrugCharacteristic, \ + MedicationKnowledgeIngredient, MedicationKnowledgeKinetics, MedicationKnowledgeMedicineClassification, \ + MedicationKnowledgeMonitoringProgram, MedicationKnowledgeMonograph, MedicationKnowledgePackaging, MedicationKnowledgeRegulatory, \ + MedicationKnowledgeRegulatoryMaxDispense, MedicationKnowledgeRegulatorySchedule, MedicationKnowledgeRegulatorySubstitution, \ + MedicationKnowledgeRelatedMedicationKnowledge +) +from generated.hl7_fhir_r4_core.medication_request import (\ + MedicationRequest, MedicationRequestDispenseRequest, MedicationRequestDispenseRequestInitialFill, MedicationRequestSubstitution +) +from generated.hl7_fhir_r4_core.medication_statement import MedicationStatement +from generated.hl7_fhir_r4_core.medicinal_product import (\ + MedicinalProduct, MedicinalProductManufacturingBusinessOperation, MedicinalProductName, MedicinalProductNameCountryLanguage, \ + MedicinalProductNameNamePart, MedicinalProductSpecialDesignation +) +from generated.hl7_fhir_r4_core.medicinal_product_authorization import (\ + MedicinalProductAuthorization, MedicinalProductAuthorizationJurisdictionalAuthorization, MedicinalProductAuthorizationProcedure +) +from generated.hl7_fhir_r4_core.medicinal_product_contraindication import (\ + MedicinalProductContraindication, MedicinalProductContraindicationOtherTherapy +) +from generated.hl7_fhir_r4_core.medicinal_product_indication import (\ + MedicinalProductIndication, MedicinalProductIndicationOtherTherapy +) +from generated.hl7_fhir_r4_core.medicinal_product_ingredient import (\ + MedicinalProductIngredient, MedicinalProductIngredientSpecifiedSubstance, MedicinalProductIngredientSpecifiedSubstanceStrength, \ + MedicinalProductIngredientSpecifiedSubstanceStrengthReferenceStrength, MedicinalProductIngredientSubstance +) +from generated.hl7_fhir_r4_core.medicinal_product_interaction import (\ + MedicinalProductInteraction, MedicinalProductInteractionInteractant +) +from generated.hl7_fhir_r4_core.medicinal_product_manufactured import MedicinalProductManufactured +from generated.hl7_fhir_r4_core.medicinal_product_packaged import (\ + MedicinalProductPackaged, MedicinalProductPackagedBatchIdentifier, MedicinalProductPackagedPackageItem +) +from generated.hl7_fhir_r4_core.medicinal_product_pharmaceutical import (\ + MedicinalProductPharmaceutical, MedicinalProductPharmaceuticalCharacteristics, MedicinalProductPharmaceuticalRouteOfAdministration, \ + MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpecies, MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpeciesWithdrawalPeriod +) +from generated.hl7_fhir_r4_core.medicinal_product_undesirable_effect import MedicinalProductUndesirableEffect +from generated.hl7_fhir_r4_core.message_definition import (\ + MessageDefinition, MessageDefinitionAllowedResponse, MessageDefinitionFocus +) +from generated.hl7_fhir_r4_core.message_header import (\ + MessageHeader, MessageHeaderDestination, MessageHeaderResponse, MessageHeaderSource +) +from generated.hl7_fhir_r4_core.molecular_sequence import (\ + MolecularSequence, MolecularSequenceQuality, MolecularSequenceQualityRoc, MolecularSequenceReferenceSeq, \ + MolecularSequenceRepository, MolecularSequenceStructureVariant, MolecularSequenceStructureVariantInner, \ + MolecularSequenceStructureVariantOuter, MolecularSequenceVariant +) +from generated.hl7_fhir_r4_core.naming_system import NamingSystem, NamingSystemUniqueId +from generated.hl7_fhir_r4_core.nutrition_order import (\ + NutritionOrder, NutritionOrderEnteralFormula, NutritionOrderEnteralFormulaAdministration, NutritionOrderOralDiet, \ + NutritionOrderOralDietNutrient, NutritionOrderOralDietTexture, NutritionOrderSupplement +) +from generated.hl7_fhir_r4_core.observation import (\ + Observation, ObservationComponent, ObservationReferenceRange +) +from generated.hl7_fhir_r4_core.observation_definition import (\ + ObservationDefinition, ObservationDefinitionQualifiedInterval, ObservationDefinitionQuantitativeDetails +) +from generated.hl7_fhir_r4_core.operation_definition import (\ + OperationDefinition, OperationDefinitionOverload, OperationDefinitionParameter, OperationDefinitionParameterBinding, \ + OperationDefinitionParameterReferencedFrom +) +from generated.hl7_fhir_r4_core.operation_outcome import OperationOutcome, OperationOutcomeIssue +from generated.hl7_fhir_r4_core.organization import Organization, OrganizationContact +from generated.hl7_fhir_r4_core.organization_affiliation import OrganizationAffiliation +from generated.hl7_fhir_r4_core.parameters import Parameters, ParametersParameter +from generated.hl7_fhir_r4_core.patient import (\ + Patient, PatientCommunication, PatientContact, PatientLink +) +from generated.hl7_fhir_r4_core.payment_notice import PaymentNotice +from generated.hl7_fhir_r4_core.payment_reconciliation import (\ + PaymentReconciliation, PaymentReconciliationDetail, PaymentReconciliationProcessNote +) +from generated.hl7_fhir_r4_core.person import Person, PersonLink +from generated.hl7_fhir_r4_core.plan_definition import (\ + PlanDefinition, PlanDefinitionAction, PlanDefinitionActionCondition, PlanDefinitionActionDynamicValue, \ + PlanDefinitionActionParticipant, PlanDefinitionActionRelatedAction, PlanDefinitionGoal, PlanDefinitionGoalTarget +) +from generated.hl7_fhir_r4_core.practitioner import Practitioner, PractitionerQualification +from generated.hl7_fhir_r4_core.practitioner_role import (\ + PractitionerRole, PractitionerRoleAvailableTime, PractitionerRoleNotAvailable +) +from generated.hl7_fhir_r4_core.procedure import Procedure, ProcedureFocalDevice, ProcedurePerformer +from generated.hl7_fhir_r4_core.provenance import Provenance, ProvenanceAgent, ProvenanceEntity +from generated.hl7_fhir_r4_core.questionnaire import (\ + Questionnaire, QuestionnaireItem, QuestionnaireItemAnswerOption, QuestionnaireItemEnableWhen, QuestionnaireItemInitial +) +from generated.hl7_fhir_r4_core.questionnaire_response import (\ + QuestionnaireResponse, QuestionnaireResponseItem, QuestionnaireResponseItemAnswer +) +from generated.hl7_fhir_r4_core.related_person import RelatedPerson, RelatedPersonCommunication +from generated.hl7_fhir_r4_core.request_group import (\ + RequestGroup, RequestGroupAction, RequestGroupActionCondition, RequestGroupActionRelatedAction +) +from generated.hl7_fhir_r4_core.research_definition import ResearchDefinition +from generated.hl7_fhir_r4_core.research_element_definition import (\ + ResearchElementDefinition, ResearchElementDefinitionCharacteristic +) +from generated.hl7_fhir_r4_core.research_study import (\ + ResearchStudy, ResearchStudyArm, ResearchStudyObjective +) +from generated.hl7_fhir_r4_core.research_subject import ResearchSubject +from generated.hl7_fhir_r4_core.resource import Resource +from generated.hl7_fhir_r4_core.resource_families import ResourceFamily +from generated.hl7_fhir_r4_core.risk_assessment import RiskAssessment, RiskAssessmentPrediction +from generated.hl7_fhir_r4_core.risk_evidence_synthesis import (\ + RiskEvidenceSynthesis, RiskEvidenceSynthesisCertainty, RiskEvidenceSynthesisCertaintyCertaintySubcomponent, \ + RiskEvidenceSynthesisRiskEstimate, RiskEvidenceSynthesisRiskEstimatePrecisionEstimate, RiskEvidenceSynthesisSampleSize +) +from generated.hl7_fhir_r4_core.schedule import Schedule +from generated.hl7_fhir_r4_core.search_parameter import SearchParameter, SearchParameterComponent +from generated.hl7_fhir_r4_core.service_request import ServiceRequest +from generated.hl7_fhir_r4_core.slot import Slot +from generated.hl7_fhir_r4_core.specimen import (\ + Specimen, SpecimenCollection, SpecimenContainer, SpecimenProcessing +) +from generated.hl7_fhir_r4_core.specimen_definition import (\ + SpecimenDefinition, SpecimenDefinitionTypeTested, SpecimenDefinitionTypeTestedContainer, SpecimenDefinitionTypeTestedContainerAdditive, \ + SpecimenDefinitionTypeTestedHandling +) +from generated.hl7_fhir_r4_core.structure_definition import (\ + StructureDefinition, StructureDefinitionContext, StructureDefinitionDifferential, StructureDefinitionMapping, \ + StructureDefinitionSnapshot +) +from generated.hl7_fhir_r4_core.structure_map import (\ + StructureMap, StructureMapGroup, StructureMapGroupInput, StructureMapGroupRule, StructureMapGroupRuleDependent, \ + StructureMapGroupRuleSource, StructureMapGroupRuleTarget, StructureMapGroupRuleTargetParameter, StructureMapStructure +) +from generated.hl7_fhir_r4_core.subscription import Subscription, SubscriptionChannel +from generated.hl7_fhir_r4_core.substance import Substance, SubstanceIngredient, SubstanceInstance +from generated.hl7_fhir_r4_core.substance_nucleic_acid import (\ + SubstanceNucleicAcid, SubstanceNucleicAcidSubunit, SubstanceNucleicAcidSubunitLinkage, SubstanceNucleicAcidSubunitSugar +) +from generated.hl7_fhir_r4_core.substance_polymer import (\ + SubstancePolymer, SubstancePolymerMonomerSet, SubstancePolymerMonomerSetStartingMaterial, SubstancePolymerRepeat, \ + SubstancePolymerRepeatRepeatUnit, SubstancePolymerRepeatRepeatUnitDegreeOfPolymerisation, SubstancePolymerRepeatRepeatUnitStructuralRepresentation +) +from generated.hl7_fhir_r4_core.substance_protein import SubstanceProtein, SubstanceProteinSubunit +from generated.hl7_fhir_r4_core.substance_reference_information import (\ + SubstanceReferenceInformation, SubstanceReferenceInformationClassification, SubstanceReferenceInformationGene, \ + SubstanceReferenceInformationGeneElement, SubstanceReferenceInformationTarget +) +from generated.hl7_fhir_r4_core.substance_source_material import (\ + SubstanceSourceMaterial, SubstanceSourceMaterialFractionDescription, SubstanceSourceMaterialOrganism, \ + SubstanceSourceMaterialOrganismAuthor, SubstanceSourceMaterialOrganismHybrid, SubstanceSourceMaterialOrganismOrganismGeneral, \ + SubstanceSourceMaterialPartDescription +) +from generated.hl7_fhir_r4_core.substance_specification import (\ + SubstanceSpecification, SubstanceSpecificationCode, SubstanceSpecificationMoiety, SubstanceSpecificationName, \ + SubstanceSpecificationNameOfficial, SubstanceSpecificationProperty, SubstanceSpecificationRelationship, \ + SubstanceSpecificationStructure, SubstanceSpecificationStructureIsotope, SubstanceSpecificationStructureIsotopeMolecularWeight, \ + SubstanceSpecificationStructureRepresentation +) +from generated.hl7_fhir_r4_core.supply_delivery import SupplyDelivery, SupplyDeliverySuppliedItem +from generated.hl7_fhir_r4_core.supply_request import SupplyRequest, SupplyRequestParameter +from generated.hl7_fhir_r4_core.task import Task, TaskInput, TaskOutput, TaskRestriction +from generated.hl7_fhir_r4_core.terminology_capabilities import (\ + TerminologyCapabilities, TerminologyCapabilitiesClosure, TerminologyCapabilitiesCodeSystem, TerminologyCapabilitiesCodeSystemVersion, \ + TerminologyCapabilitiesCodeSystemVersionFilter, TerminologyCapabilitiesExpansion, TerminologyCapabilitiesExpansionParameter, \ + TerminologyCapabilitiesImplementation, TerminologyCapabilitiesSoftware, TerminologyCapabilitiesTranslation, \ + TerminologyCapabilitiesValidateCode +) +from generated.hl7_fhir_r4_core.test_report import (\ + TestReport, TestReportParticipant, TestReportSetup, TestReportSetupAction, TestReportSetupActionAssert, \ + TestReportSetupActionOperation, TestReportTeardown, TestReportTeardownAction, TestReportTest, TestReportTestAction +) +from generated.hl7_fhir_r4_core.test_script import (\ + TestScript, TestScriptDestination, TestScriptFixture, TestScriptMetadata, TestScriptMetadataCapability, \ + TestScriptMetadataLink, TestScriptOrigin, TestScriptSetup, TestScriptSetupAction, TestScriptSetupActionAssert, \ + TestScriptSetupActionOperation, TestScriptSetupActionOperationRequestHeader, TestScriptTeardown, TestScriptTeardownAction, \ + TestScriptTest, TestScriptTestAction, TestScriptVariable +) +from generated.hl7_fhir_r4_core.value_set import (\ + ValueSet, ValueSetCompose, ValueSetComposeInclude, ValueSetComposeIncludeConcept, ValueSetComposeIncludeConceptDesignation, \ + ValueSetComposeIncludeFilter, ValueSetExpansion, ValueSetExpansionContains, ValueSetExpansionParameter +) +from generated.hl7_fhir_r4_core.verification_result import (\ + VerificationResult, VerificationResultAttestation, VerificationResultPrimarySource, VerificationResultValidator +) +from generated.hl7_fhir_r4_core.vision_prescription import (\ + VisionPrescription, VisionPrescriptionLensSpecification, VisionPrescriptionLensSpecificationPrism +) + +Account.model_rebuild() +AccountCoverage.model_rebuild() +AccountGuarantor.model_rebuild() +ActivityDefinition.model_rebuild() +ActivityDefinitionDynamicValue.model_rebuild() +ActivityDefinitionParticipant.model_rebuild() +Address.model_rebuild() +AdverseEvent.model_rebuild() +AdverseEventSuspectEntity.model_rebuild() +AdverseEventSuspectEntityCausality.model_rebuild() +Age.model_rebuild() +AllergyIntolerance.model_rebuild() +AllergyIntoleranceReaction.model_rebuild() +Annotation.model_rebuild() +Appointment.model_rebuild() +AppointmentParticipant.model_rebuild() +AppointmentResponse.model_rebuild() +Attachment.model_rebuild() +AuditEvent.model_rebuild() +AuditEventAgent.model_rebuild() +AuditEventAgentNetwork.model_rebuild() +AuditEventEntity.model_rebuild() +AuditEventEntityDetail.model_rebuild() +AuditEventSource.model_rebuild() +BackboneElement.model_rebuild() +Basic.model_rebuild() +Binary.model_rebuild() +BiologicallyDerivedProduct.model_rebuild() +BiologicallyDerivedProductCollection.model_rebuild() +BiologicallyDerivedProductManipulation.model_rebuild() +BiologicallyDerivedProductProcessing.model_rebuild() +BiologicallyDerivedProductStorage.model_rebuild() +BodyStructure.model_rebuild() +Bundle.model_rebuild() +BundleEntry.model_rebuild() +BundleEntryRequest.model_rebuild() +BundleEntryResponse.model_rebuild() +BundleEntrySearch.model_rebuild() +BundleLink.model_rebuild() +CapabilityStatement.model_rebuild() +CapabilityStatementDocument.model_rebuild() +CapabilityStatementImplementation.model_rebuild() +CapabilityStatementMessaging.model_rebuild() +CapabilityStatementMessagingEndpoint.model_rebuild() +CapabilityStatementMessagingSupportedMessage.model_rebuild() +CapabilityStatementRest.model_rebuild() +CapabilityStatementRestInteraction.model_rebuild() +CapabilityStatementRestResource.model_rebuild() +CapabilityStatementRestResourceInteraction.model_rebuild() +CapabilityStatementRestResourceOperation.model_rebuild() +CapabilityStatementRestResourceSearchParam.model_rebuild() +CapabilityStatementRestSecurity.model_rebuild() +CapabilityStatementSoftware.model_rebuild() +CarePlan.model_rebuild() +CarePlanActivity.model_rebuild() +CarePlanActivityDetail.model_rebuild() +CareTeam.model_rebuild() +CareTeamParticipant.model_rebuild() +CatalogEntry.model_rebuild() +CatalogEntryRelatedEntry.model_rebuild() +ChargeItem.model_rebuild() +ChargeItemDefinition.model_rebuild() +ChargeItemDefinitionApplicability.model_rebuild() +ChargeItemDefinitionPropertyGroup.model_rebuild() +ChargeItemDefinitionPropertyGroupPriceComponent.model_rebuild() +ChargeItemPerformer.model_rebuild() +Claim.model_rebuild() +ClaimAccident.model_rebuild() +ClaimCareTeam.model_rebuild() +ClaimDiagnosis.model_rebuild() +ClaimInsurance.model_rebuild() +ClaimItem.model_rebuild() +ClaimItemDetail.model_rebuild() +ClaimItemDetailSubDetail.model_rebuild() +ClaimPayee.model_rebuild() +ClaimProcedure.model_rebuild() +ClaimRelated.model_rebuild() +ClaimResponse.model_rebuild() +ClaimResponseAddItem.model_rebuild() +ClaimResponseAddItemDetail.model_rebuild() +ClaimResponseAddItemDetailSubDetail.model_rebuild() +ClaimResponseError.model_rebuild() +ClaimResponseInsurance.model_rebuild() +ClaimResponseItem.model_rebuild() +ClaimResponseItemAdjudication.model_rebuild() +ClaimResponseItemDetail.model_rebuild() +ClaimResponseItemDetailSubDetail.model_rebuild() +ClaimResponsePayment.model_rebuild() +ClaimResponseProcessNote.model_rebuild() +ClaimResponseTotal.model_rebuild() +ClaimSupportingInfo.model_rebuild() +ClinicalImpression.model_rebuild() +ClinicalImpressionFinding.model_rebuild() +ClinicalImpressionInvestigation.model_rebuild() +CodeSystem.model_rebuild() +CodeSystemConcept.model_rebuild() +CodeSystemConceptDesignation.model_rebuild() +CodeSystemConceptProperty.model_rebuild() +CodeSystemFilter.model_rebuild() +CodeSystemProperty.model_rebuild() +CodeableConcept.model_rebuild() +Coding.model_rebuild() +Communication.model_rebuild() +CommunicationPayload.model_rebuild() +CommunicationRequest.model_rebuild() +CommunicationRequestPayload.model_rebuild() +CompartmentDefinition.model_rebuild() +CompartmentDefinitionResource.model_rebuild() +Composition.model_rebuild() +CompositionAttester.model_rebuild() +CompositionEvent.model_rebuild() +CompositionRelatesTo.model_rebuild() +CompositionSection.model_rebuild() +ConceptMap.model_rebuild() +ConceptMapGroup.model_rebuild() +ConceptMapGroupElement.model_rebuild() +ConceptMapGroupElementTarget.model_rebuild() +ConceptMapGroupElementTargetDependsOn.model_rebuild() +ConceptMapGroupUnmapped.model_rebuild() +Condition.model_rebuild() +ConditionEvidence.model_rebuild() +ConditionStage.model_rebuild() +Consent.model_rebuild() +ConsentPolicy.model_rebuild() +ConsentProvision.model_rebuild() +ConsentProvisionActor.model_rebuild() +ConsentProvisionData.model_rebuild() +ConsentVerification.model_rebuild() +ContactDetail.model_rebuild() +ContactPoint.model_rebuild() +Contract.model_rebuild() +ContractContentDefinition.model_rebuild() +ContractFriendly.model_rebuild() +ContractLegal.model_rebuild() +ContractRule.model_rebuild() +ContractSigner.model_rebuild() +ContractTerm.model_rebuild() +ContractTermAction.model_rebuild() +ContractTermActionSubject.model_rebuild() +ContractTermAsset.model_rebuild() +ContractTermAssetContext.model_rebuild() +ContractTermAssetValuedItem.model_rebuild() +ContractTermOffer.model_rebuild() +ContractTermOfferAnswer.model_rebuild() +ContractTermOfferParty.model_rebuild() +ContractTermSecurityLabel.model_rebuild() +Contributor.model_rebuild() +Count.model_rebuild() +Coverage.model_rebuild() +CoverageClass.model_rebuild() +CoverageCostToBeneficiary.model_rebuild() +CoverageCostToBeneficiaryException.model_rebuild() +CoverageEligibilityRequest.model_rebuild() +CoverageEligibilityRequestInsurance.model_rebuild() +CoverageEligibilityRequestItem.model_rebuild() +CoverageEligibilityRequestItemDiagnosis.model_rebuild() +CoverageEligibilityRequestSupportingInfo.model_rebuild() +CoverageEligibilityResponse.model_rebuild() +CoverageEligibilityResponseError.model_rebuild() +CoverageEligibilityResponseInsurance.model_rebuild() +CoverageEligibilityResponseInsuranceItem.model_rebuild() +CoverageEligibilityResponseInsuranceItemBenefit.model_rebuild() +DataRequirement.model_rebuild() +DetectedIssue.model_rebuild() +DetectedIssueEvidence.model_rebuild() +DetectedIssueMitigation.model_rebuild() +Device.model_rebuild() +DeviceDefinition.model_rebuild() +DeviceDefinitionCapability.model_rebuild() +DeviceDefinitionDeviceName.model_rebuild() +DeviceDefinitionMaterial.model_rebuild() +DeviceDefinitionProperty.model_rebuild() +DeviceDefinitionSpecialization.model_rebuild() +DeviceDefinitionUdiDeviceIdentifier.model_rebuild() +DeviceDeviceName.model_rebuild() +DeviceMetric.model_rebuild() +DeviceMetricCalibration.model_rebuild() +DeviceProperty.model_rebuild() +DeviceRequest.model_rebuild() +DeviceRequestParameter.model_rebuild() +DeviceSpecialization.model_rebuild() +DeviceUdiCarrier.model_rebuild() +DeviceUseStatement.model_rebuild() +DeviceVersion.model_rebuild() +DiagnosticReport.model_rebuild() +DiagnosticReportMedia.model_rebuild() +Distance.model_rebuild() +DocumentManifest.model_rebuild() +DocumentManifestRelated.model_rebuild() +DocumentReference.model_rebuild() +DocumentReferenceContent.model_rebuild() +DocumentReferenceContext.model_rebuild() +DocumentReferenceRelatesTo.model_rebuild() +DomainResource.model_rebuild() +Dosage.model_rebuild() +Duration.model_rebuild() +EffectEvidenceSynthesis.model_rebuild() +EffectEvidenceSynthesisCertainty.model_rebuild() +EffectEvidenceSynthesisCertaintyCertaintySubcomponent.model_rebuild() +EffectEvidenceSynthesisEffectEstimate.model_rebuild() +EffectEvidenceSynthesisEffectEstimatePrecisionEstimate.model_rebuild() +EffectEvidenceSynthesisResultsByExposure.model_rebuild() +EffectEvidenceSynthesisSampleSize.model_rebuild() +Element.model_rebuild() +ElementDefinition.model_rebuild() +Encounter.model_rebuild() +EncounterClassHistory.model_rebuild() +EncounterDiagnosis.model_rebuild() +EncounterHospitalization.model_rebuild() +EncounterLocation.model_rebuild() +EncounterParticipant.model_rebuild() +EncounterStatusHistory.model_rebuild() +Endpoint.model_rebuild() +EnrollmentRequest.model_rebuild() +EnrollmentResponse.model_rebuild() +EpisodeOfCare.model_rebuild() +EpisodeOfCareDiagnosis.model_rebuild() +EpisodeOfCareStatusHistory.model_rebuild() +EventDefinition.model_rebuild() +Evidence.model_rebuild() +EvidenceVariable.model_rebuild() +EvidenceVariableCharacteristic.model_rebuild() +ExampleScenario.model_rebuild() +ExampleScenarioActor.model_rebuild() +ExampleScenarioInstance.model_rebuild() +ExampleScenarioInstanceContainedInstance.model_rebuild() +ExampleScenarioInstanceVersion.model_rebuild() +ExampleScenarioProcess.model_rebuild() +ExampleScenarioProcessStep.model_rebuild() +ExampleScenarioProcessStepAlternative.model_rebuild() +ExampleScenarioProcessStepOperation.model_rebuild() +ExplanationOfBenefit.model_rebuild() +ExplanationOfBenefitAccident.model_rebuild() +ExplanationOfBenefitAddItem.model_rebuild() +ExplanationOfBenefitAddItemDetail.model_rebuild() +ExplanationOfBenefitAddItemDetailSubDetail.model_rebuild() +ExplanationOfBenefitBenefitBalance.model_rebuild() +ExplanationOfBenefitBenefitBalanceFinancial.model_rebuild() +ExplanationOfBenefitCareTeam.model_rebuild() +ExplanationOfBenefitDiagnosis.model_rebuild() +ExplanationOfBenefitInsurance.model_rebuild() +ExplanationOfBenefitItem.model_rebuild() +ExplanationOfBenefitItemAdjudication.model_rebuild() +ExplanationOfBenefitItemDetail.model_rebuild() +ExplanationOfBenefitItemDetailSubDetail.model_rebuild() +ExplanationOfBenefitPayee.model_rebuild() +ExplanationOfBenefitPayment.model_rebuild() +ExplanationOfBenefitProcedure.model_rebuild() +ExplanationOfBenefitProcessNote.model_rebuild() +ExplanationOfBenefitRelated.model_rebuild() +ExplanationOfBenefitSupportingInfo.model_rebuild() +ExplanationOfBenefitTotal.model_rebuild() +Expression.model_rebuild() +Extension.model_rebuild() +FamilyMemberHistory.model_rebuild() +FamilyMemberHistoryCondition.model_rebuild() +Flag.model_rebuild() +Goal.model_rebuild() +GoalTarget.model_rebuild() +GraphDefinition.model_rebuild() +GraphDefinitionLink.model_rebuild() +GraphDefinitionLinkTarget.model_rebuild() +GraphDefinitionLinkTargetCompartment.model_rebuild() +Group.model_rebuild() +GroupCharacteristic.model_rebuild() +GroupMember.model_rebuild() +GuidanceResponse.model_rebuild() +HealthcareService.model_rebuild() +HealthcareServiceAvailableTime.model_rebuild() +HealthcareServiceEligibility.model_rebuild() +HealthcareServiceNotAvailable.model_rebuild() +HumanName.model_rebuild() +Identifier.model_rebuild() +ImagingStudy.model_rebuild() +ImagingStudySeries.model_rebuild() +ImagingStudySeriesInstance.model_rebuild() +ImagingStudySeriesPerformer.model_rebuild() +Immunization.model_rebuild() +ImmunizationEducation.model_rebuild() +ImmunizationEvaluation.model_rebuild() +ImmunizationPerformer.model_rebuild() +ImmunizationProtocolApplied.model_rebuild() +ImmunizationReaction.model_rebuild() +ImmunizationRecommendation.model_rebuild() +ImmunizationRecommendationRecommendation.model_rebuild() +ImmunizationRecommendationRecommendationDateCriterion.model_rebuild() +ImplementationGuide.model_rebuild() +ImplementationGuideDefinition.model_rebuild() +ImplementationGuideDefinitionGrouping.model_rebuild() +ImplementationGuideDefinitionPage.model_rebuild() +ImplementationGuideDefinitionParameter.model_rebuild() +ImplementationGuideDefinitionResource.model_rebuild() +ImplementationGuideDefinitionTemplate.model_rebuild() +ImplementationGuideDependsOn.model_rebuild() +ImplementationGuideGlobal.model_rebuild() +ImplementationGuideManifest.model_rebuild() +ImplementationGuideManifestPage.model_rebuild() +ImplementationGuideManifestResource.model_rebuild() +InsurancePlan.model_rebuild() +InsurancePlanContact.model_rebuild() +InsurancePlanCoverage.model_rebuild() +InsurancePlanCoverageBenefit.model_rebuild() +InsurancePlanCoverageBenefitLimit.model_rebuild() +InsurancePlanPlan.model_rebuild() +InsurancePlanPlanGeneralCost.model_rebuild() +InsurancePlanPlanSpecificCost.model_rebuild() +InsurancePlanPlanSpecificCostBenefit.model_rebuild() +InsurancePlanPlanSpecificCostBenefitCost.model_rebuild() +Invoice.model_rebuild() +InvoiceLineItem.model_rebuild() +InvoiceLineItemPriceComponent.model_rebuild() +InvoiceParticipant.model_rebuild() +Library.model_rebuild() +Linkage.model_rebuild() +LinkageItem.model_rebuild() +List.model_rebuild() +ListEntry.model_rebuild() +Location.model_rebuild() +LocationHoursOfOperation.model_rebuild() +LocationPosition.model_rebuild() +MarketingStatus.model_rebuild() +Measure.model_rebuild() +MeasureGroup.model_rebuild() +MeasureGroupPopulation.model_rebuild() +MeasureGroupStratifier.model_rebuild() +MeasureGroupStratifierComponent.model_rebuild() +MeasureReport.model_rebuild() +MeasureReportGroup.model_rebuild() +MeasureReportGroupPopulation.model_rebuild() +MeasureReportGroupStratifier.model_rebuild() +MeasureReportGroupStratifierStratum.model_rebuild() +MeasureReportGroupStratifierStratumComponent.model_rebuild() +MeasureReportGroupStratifierStratumPopulation.model_rebuild() +MeasureSupplementalData.model_rebuild() +Media.model_rebuild() +Medication.model_rebuild() +MedicationAdministration.model_rebuild() +MedicationAdministrationDosage.model_rebuild() +MedicationAdministrationPerformer.model_rebuild() +MedicationBatch.model_rebuild() +MedicationDispense.model_rebuild() +MedicationDispensePerformer.model_rebuild() +MedicationDispenseSubstitution.model_rebuild() +MedicationIngredient.model_rebuild() +MedicationKnowledge.model_rebuild() +MedicationKnowledgeAdministrationGuidelines.model_rebuild() +MedicationKnowledgeAdministrationGuidelinesDosage.model_rebuild() +MedicationKnowledgeAdministrationGuidelinesPatientCharacteristics.model_rebuild() +MedicationKnowledgeCost.model_rebuild() +MedicationKnowledgeDrugCharacteristic.model_rebuild() +MedicationKnowledgeIngredient.model_rebuild() +MedicationKnowledgeKinetics.model_rebuild() +MedicationKnowledgeMedicineClassification.model_rebuild() +MedicationKnowledgeMonitoringProgram.model_rebuild() +MedicationKnowledgeMonograph.model_rebuild() +MedicationKnowledgePackaging.model_rebuild() +MedicationKnowledgeRegulatory.model_rebuild() +MedicationKnowledgeRegulatoryMaxDispense.model_rebuild() +MedicationKnowledgeRegulatorySchedule.model_rebuild() +MedicationKnowledgeRegulatorySubstitution.model_rebuild() +MedicationKnowledgeRelatedMedicationKnowledge.model_rebuild() +MedicationRequest.model_rebuild() +MedicationRequestDispenseRequest.model_rebuild() +MedicationRequestDispenseRequestInitialFill.model_rebuild() +MedicationRequestSubstitution.model_rebuild() +MedicationStatement.model_rebuild() +MedicinalProduct.model_rebuild() +MedicinalProductAuthorization.model_rebuild() +MedicinalProductAuthorizationJurisdictionalAuthorization.model_rebuild() +MedicinalProductAuthorizationProcedure.model_rebuild() +MedicinalProductContraindication.model_rebuild() +MedicinalProductContraindicationOtherTherapy.model_rebuild() +MedicinalProductIndication.model_rebuild() +MedicinalProductIndicationOtherTherapy.model_rebuild() +MedicinalProductIngredient.model_rebuild() +MedicinalProductIngredientSpecifiedSubstance.model_rebuild() +MedicinalProductIngredientSpecifiedSubstanceStrength.model_rebuild() +MedicinalProductIngredientSpecifiedSubstanceStrengthReferenceStrength.model_rebuild() +MedicinalProductIngredientSubstance.model_rebuild() +MedicinalProductInteraction.model_rebuild() +MedicinalProductInteractionInteractant.model_rebuild() +MedicinalProductManufactured.model_rebuild() +MedicinalProductManufacturingBusinessOperation.model_rebuild() +MedicinalProductName.model_rebuild() +MedicinalProductNameCountryLanguage.model_rebuild() +MedicinalProductNameNamePart.model_rebuild() +MedicinalProductPackaged.model_rebuild() +MedicinalProductPackagedBatchIdentifier.model_rebuild() +MedicinalProductPackagedPackageItem.model_rebuild() +MedicinalProductPharmaceutical.model_rebuild() +MedicinalProductPharmaceuticalCharacteristics.model_rebuild() +MedicinalProductPharmaceuticalRouteOfAdministration.model_rebuild() +MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpecies.model_rebuild() +MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpeciesWithdrawalPeriod.model_rebuild() +MedicinalProductSpecialDesignation.model_rebuild() +MedicinalProductUndesirableEffect.model_rebuild() +MessageDefinition.model_rebuild() +MessageDefinitionAllowedResponse.model_rebuild() +MessageDefinitionFocus.model_rebuild() +MessageHeader.model_rebuild() +MessageHeaderDestination.model_rebuild() +MessageHeaderResponse.model_rebuild() +MessageHeaderSource.model_rebuild() +Meta.model_rebuild() +MolecularSequence.model_rebuild() +MolecularSequenceQuality.model_rebuild() +MolecularSequenceQualityRoc.model_rebuild() +MolecularSequenceReferenceSeq.model_rebuild() +MolecularSequenceRepository.model_rebuild() +MolecularSequenceStructureVariant.model_rebuild() +MolecularSequenceStructureVariantInner.model_rebuild() +MolecularSequenceStructureVariantOuter.model_rebuild() +MolecularSequenceVariant.model_rebuild() +Money.model_rebuild() +NamingSystem.model_rebuild() +NamingSystemUniqueId.model_rebuild() +Narrative.model_rebuild() +NutritionOrder.model_rebuild() +NutritionOrderEnteralFormula.model_rebuild() +NutritionOrderEnteralFormulaAdministration.model_rebuild() +NutritionOrderOralDiet.model_rebuild() +NutritionOrderOralDietNutrient.model_rebuild() +NutritionOrderOralDietTexture.model_rebuild() +NutritionOrderSupplement.model_rebuild() +Observation.model_rebuild() +ObservationComponent.model_rebuild() +ObservationDefinition.model_rebuild() +ObservationDefinitionQualifiedInterval.model_rebuild() +ObservationDefinitionQuantitativeDetails.model_rebuild() +ObservationReferenceRange.model_rebuild() +OperationDefinition.model_rebuild() +OperationDefinitionOverload.model_rebuild() +OperationDefinitionParameter.model_rebuild() +OperationDefinitionParameterBinding.model_rebuild() +OperationDefinitionParameterReferencedFrom.model_rebuild() +OperationOutcome.model_rebuild() +OperationOutcomeIssue.model_rebuild() +Organization.model_rebuild() +OrganizationAffiliation.model_rebuild() +OrganizationContact.model_rebuild() +ParameterDefinition.model_rebuild() +Parameters.model_rebuild() +ParametersParameter.model_rebuild() +Patient.model_rebuild() +PatientCommunication.model_rebuild() +PatientContact.model_rebuild() +PatientLink.model_rebuild() +PaymentNotice.model_rebuild() +PaymentReconciliation.model_rebuild() +PaymentReconciliationDetail.model_rebuild() +PaymentReconciliationProcessNote.model_rebuild() +Period.model_rebuild() +Person.model_rebuild() +PersonLink.model_rebuild() +PlanDefinition.model_rebuild() +PlanDefinitionAction.model_rebuild() +PlanDefinitionActionCondition.model_rebuild() +PlanDefinitionActionDynamicValue.model_rebuild() +PlanDefinitionActionParticipant.model_rebuild() +PlanDefinitionActionRelatedAction.model_rebuild() +PlanDefinitionGoal.model_rebuild() +PlanDefinitionGoalTarget.model_rebuild() +Population.model_rebuild() +Practitioner.model_rebuild() +PractitionerQualification.model_rebuild() +PractitionerRole.model_rebuild() +PractitionerRoleAvailableTime.model_rebuild() +PractitionerRoleNotAvailable.model_rebuild() +Procedure.model_rebuild() +ProcedureFocalDevice.model_rebuild() +ProcedurePerformer.model_rebuild() +ProdCharacteristic.model_rebuild() +ProductShelfLife.model_rebuild() +Provenance.model_rebuild() +ProvenanceAgent.model_rebuild() +ProvenanceEntity.model_rebuild() +Quantity.model_rebuild() +Questionnaire.model_rebuild() +QuestionnaireItem.model_rebuild() +QuestionnaireItemAnswerOption.model_rebuild() +QuestionnaireItemEnableWhen.model_rebuild() +QuestionnaireItemInitial.model_rebuild() +QuestionnaireResponse.model_rebuild() +QuestionnaireResponseItem.model_rebuild() +QuestionnaireResponseItemAnswer.model_rebuild() +Range.model_rebuild() +Ratio.model_rebuild() +Reference.model_rebuild() +RelatedArtifact.model_rebuild() +RelatedPerson.model_rebuild() +RelatedPersonCommunication.model_rebuild() +RequestGroup.model_rebuild() +RequestGroupAction.model_rebuild() +RequestGroupActionCondition.model_rebuild() +RequestGroupActionRelatedAction.model_rebuild() +ResearchDefinition.model_rebuild() +ResearchElementDefinition.model_rebuild() +ResearchElementDefinitionCharacteristic.model_rebuild() +ResearchStudy.model_rebuild() +ResearchStudyArm.model_rebuild() +ResearchStudyObjective.model_rebuild() +ResearchSubject.model_rebuild() +Resource.model_rebuild() +RiskAssessment.model_rebuild() +RiskAssessmentPrediction.model_rebuild() +RiskEvidenceSynthesis.model_rebuild() +RiskEvidenceSynthesisCertainty.model_rebuild() +RiskEvidenceSynthesisCertaintyCertaintySubcomponent.model_rebuild() +RiskEvidenceSynthesisRiskEstimate.model_rebuild() +RiskEvidenceSynthesisRiskEstimatePrecisionEstimate.model_rebuild() +RiskEvidenceSynthesisSampleSize.model_rebuild() +SampledData.model_rebuild() +Schedule.model_rebuild() +SearchParameter.model_rebuild() +SearchParameterComponent.model_rebuild() +ServiceRequest.model_rebuild() +Signature.model_rebuild() +Slot.model_rebuild() +Specimen.model_rebuild() +SpecimenCollection.model_rebuild() +SpecimenContainer.model_rebuild() +SpecimenDefinition.model_rebuild() +SpecimenDefinitionTypeTested.model_rebuild() +SpecimenDefinitionTypeTestedContainer.model_rebuild() +SpecimenDefinitionTypeTestedContainerAdditive.model_rebuild() +SpecimenDefinitionTypeTestedHandling.model_rebuild() +SpecimenProcessing.model_rebuild() +StructureDefinition.model_rebuild() +StructureDefinitionContext.model_rebuild() +StructureDefinitionDifferential.model_rebuild() +StructureDefinitionMapping.model_rebuild() +StructureDefinitionSnapshot.model_rebuild() +StructureMap.model_rebuild() +StructureMapGroup.model_rebuild() +StructureMapGroupInput.model_rebuild() +StructureMapGroupRule.model_rebuild() +StructureMapGroupRuleDependent.model_rebuild() +StructureMapGroupRuleSource.model_rebuild() +StructureMapGroupRuleTarget.model_rebuild() +StructureMapGroupRuleTargetParameter.model_rebuild() +StructureMapStructure.model_rebuild() +Subscription.model_rebuild() +SubscriptionChannel.model_rebuild() +Substance.model_rebuild() +SubstanceAmount.model_rebuild() +SubstanceIngredient.model_rebuild() +SubstanceInstance.model_rebuild() +SubstanceNucleicAcid.model_rebuild() +SubstanceNucleicAcidSubunit.model_rebuild() +SubstanceNucleicAcidSubunitLinkage.model_rebuild() +SubstanceNucleicAcidSubunitSugar.model_rebuild() +SubstancePolymer.model_rebuild() +SubstancePolymerMonomerSet.model_rebuild() +SubstancePolymerMonomerSetStartingMaterial.model_rebuild() +SubstancePolymerRepeat.model_rebuild() +SubstancePolymerRepeatRepeatUnit.model_rebuild() +SubstancePolymerRepeatRepeatUnitDegreeOfPolymerisation.model_rebuild() +SubstancePolymerRepeatRepeatUnitStructuralRepresentation.model_rebuild() +SubstanceProtein.model_rebuild() +SubstanceProteinSubunit.model_rebuild() +SubstanceReferenceInformation.model_rebuild() +SubstanceReferenceInformationClassification.model_rebuild() +SubstanceReferenceInformationGene.model_rebuild() +SubstanceReferenceInformationGeneElement.model_rebuild() +SubstanceReferenceInformationTarget.model_rebuild() +SubstanceSourceMaterial.model_rebuild() +SubstanceSourceMaterialFractionDescription.model_rebuild() +SubstanceSourceMaterialOrganism.model_rebuild() +SubstanceSourceMaterialOrganismAuthor.model_rebuild() +SubstanceSourceMaterialOrganismHybrid.model_rebuild() +SubstanceSourceMaterialOrganismOrganismGeneral.model_rebuild() +SubstanceSourceMaterialPartDescription.model_rebuild() +SubstanceSpecification.model_rebuild() +SubstanceSpecificationCode.model_rebuild() +SubstanceSpecificationMoiety.model_rebuild() +SubstanceSpecificationName.model_rebuild() +SubstanceSpecificationNameOfficial.model_rebuild() +SubstanceSpecificationProperty.model_rebuild() +SubstanceSpecificationRelationship.model_rebuild() +SubstanceSpecificationStructure.model_rebuild() +SubstanceSpecificationStructureIsotope.model_rebuild() +SubstanceSpecificationStructureIsotopeMolecularWeight.model_rebuild() +SubstanceSpecificationStructureRepresentation.model_rebuild() +SupplyDelivery.model_rebuild() +SupplyDeliverySuppliedItem.model_rebuild() +SupplyRequest.model_rebuild() +SupplyRequestParameter.model_rebuild() +Task.model_rebuild() +TaskInput.model_rebuild() +TaskOutput.model_rebuild() +TaskRestriction.model_rebuild() +TerminologyCapabilities.model_rebuild() +TerminologyCapabilitiesClosure.model_rebuild() +TerminologyCapabilitiesCodeSystem.model_rebuild() +TerminologyCapabilitiesCodeSystemVersion.model_rebuild() +TerminologyCapabilitiesCodeSystemVersionFilter.model_rebuild() +TerminologyCapabilitiesExpansion.model_rebuild() +TerminologyCapabilitiesExpansionParameter.model_rebuild() +TerminologyCapabilitiesImplementation.model_rebuild() +TerminologyCapabilitiesSoftware.model_rebuild() +TerminologyCapabilitiesTranslation.model_rebuild() +TerminologyCapabilitiesValidateCode.model_rebuild() +TestReport.model_rebuild() +TestReportParticipant.model_rebuild() +TestReportSetup.model_rebuild() +TestReportSetupAction.model_rebuild() +TestReportSetupActionAssert.model_rebuild() +TestReportSetupActionOperation.model_rebuild() +TestReportTeardown.model_rebuild() +TestReportTeardownAction.model_rebuild() +TestReportTest.model_rebuild() +TestReportTestAction.model_rebuild() +TestScript.model_rebuild() +TestScriptDestination.model_rebuild() +TestScriptFixture.model_rebuild() +TestScriptMetadata.model_rebuild() +TestScriptMetadataCapability.model_rebuild() +TestScriptMetadataLink.model_rebuild() +TestScriptOrigin.model_rebuild() +TestScriptSetup.model_rebuild() +TestScriptSetupAction.model_rebuild() +TestScriptSetupActionAssert.model_rebuild() +TestScriptSetupActionOperation.model_rebuild() +TestScriptSetupActionOperationRequestHeader.model_rebuild() +TestScriptTeardown.model_rebuild() +TestScriptTeardownAction.model_rebuild() +TestScriptTest.model_rebuild() +TestScriptTestAction.model_rebuild() +TestScriptVariable.model_rebuild() +Timing.model_rebuild() +TriggerDefinition.model_rebuild() +UsageContext.model_rebuild() +ValueSet.model_rebuild() +ValueSetCompose.model_rebuild() +ValueSetComposeInclude.model_rebuild() +ValueSetComposeIncludeConcept.model_rebuild() +ValueSetComposeIncludeConceptDesignation.model_rebuild() +ValueSetComposeIncludeFilter.model_rebuild() +ValueSetExpansion.model_rebuild() +ValueSetExpansionContains.model_rebuild() +ValueSetExpansionParameter.model_rebuild() +VerificationResult.model_rebuild() +VerificationResultAttestation.model_rebuild() +VerificationResultPrimarySource.model_rebuild() +VerificationResultValidator.model_rebuild() +VisionPrescription.model_rebuild() +VisionPrescriptionLensSpecification.model_rebuild() +VisionPrescriptionLensSpecificationPrism.model_rebuild() diff --git a/examples/python/generated/hl7_fhir_r4_core/__init__.py b/examples/python/generated/hl7_fhir_r4_core/__init__.py new file mode 100644 index 000000000..22d2d486d --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/__init__.py @@ -0,0 +1,1049 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from generated.hl7_fhir_r4_core.base import (\ + Address, Age, Annotation, Attachment, BackboneElement, CodeableConcept, Coding, ContactDetail, ContactPoint, \ + Contributor, Count, DataRequirement, Distance, Dosage, Duration, Element, ElementDefinition, Expression, \ + Extension, HumanName, Identifier, MarketingStatus, Meta, Money, Narrative, ParameterDefinition, Period, \ + Population, ProdCharacteristic, ProductShelfLife, Quantity, Range, Ratio, Reference, RelatedArtifact, \ + SampledData, Signature, SubstanceAmount, Timing, TriggerDefinition, UsageContext +) + +from generated.hl7_fhir_r4_core.account import Account, AccountCoverage, AccountGuarantor +from generated.hl7_fhir_r4_core.activity_definition import (\ + ActivityDefinition, ActivityDefinitionDynamicValue, ActivityDefinitionParticipant +) +from generated.hl7_fhir_r4_core.adverse_event import (\ + AdverseEvent, AdverseEventSuspectEntity, AdverseEventSuspectEntityCausality +) +from generated.hl7_fhir_r4_core.allergy_intolerance import (\ + AllergyIntolerance, AllergyIntoleranceReaction +) +from generated.hl7_fhir_r4_core.appointment import Appointment, AppointmentParticipant +from generated.hl7_fhir_r4_core.appointment_response import AppointmentResponse +from generated.hl7_fhir_r4_core.audit_event import (\ + AuditEvent, AuditEventAgent, AuditEventAgentNetwork, AuditEventEntity, AuditEventEntityDetail, AuditEventSource +) +from generated.hl7_fhir_r4_core.basic import Basic +from generated.hl7_fhir_r4_core.binary import Binary +from generated.hl7_fhir_r4_core.biologically_derived_product import (\ + BiologicallyDerivedProduct, BiologicallyDerivedProductCollection, BiologicallyDerivedProductManipulation, \ + BiologicallyDerivedProductProcessing, BiologicallyDerivedProductStorage +) +from generated.hl7_fhir_r4_core.body_structure import BodyStructure +from generated.hl7_fhir_r4_core.bundle import (\ + Bundle, BundleEntry, BundleEntryRequest, BundleEntryResponse, BundleEntrySearch, BundleLink +) +from generated.hl7_fhir_r4_core.capability_statement import (\ + CapabilityStatement, CapabilityStatementDocument, CapabilityStatementImplementation, CapabilityStatementMessaging, \ + CapabilityStatementMessagingEndpoint, CapabilityStatementMessagingSupportedMessage, CapabilityStatementRest, \ + CapabilityStatementRestInteraction, CapabilityStatementRestResource, CapabilityStatementRestResourceInteraction, \ + CapabilityStatementRestResourceOperation, CapabilityStatementRestResourceSearchParam, CapabilityStatementRestSecurity, \ + CapabilityStatementSoftware +) +from generated.hl7_fhir_r4_core.care_plan import CarePlan, CarePlanActivity, CarePlanActivityDetail +from generated.hl7_fhir_r4_core.care_team import CareTeam, CareTeamParticipant +from generated.hl7_fhir_r4_core.catalog_entry import CatalogEntry, CatalogEntryRelatedEntry +from generated.hl7_fhir_r4_core.charge_item import ChargeItem, ChargeItemPerformer +from generated.hl7_fhir_r4_core.charge_item_definition import (\ + ChargeItemDefinition, ChargeItemDefinitionApplicability, ChargeItemDefinitionPropertyGroup, ChargeItemDefinitionPropertyGroupPriceComponent +) +from generated.hl7_fhir_r4_core.claim import (\ + Claim, ClaimAccident, ClaimCareTeam, ClaimDiagnosis, ClaimInsurance, ClaimItem, ClaimItemDetail, ClaimItemDetailSubDetail, \ + ClaimPayee, ClaimProcedure, ClaimRelated, ClaimSupportingInfo +) +from generated.hl7_fhir_r4_core.claim_response import (\ + ClaimResponse, ClaimResponseAddItem, ClaimResponseAddItemDetail, ClaimResponseAddItemDetailSubDetail, \ + ClaimResponseError, ClaimResponseInsurance, ClaimResponseItem, ClaimResponseItemAdjudication, ClaimResponseItemDetail, \ + ClaimResponseItemDetailSubDetail, ClaimResponsePayment, ClaimResponseProcessNote, ClaimResponseTotal +) +from generated.hl7_fhir_r4_core.clinical_impression import (\ + ClinicalImpression, ClinicalImpressionFinding, ClinicalImpressionInvestigation +) +from generated.hl7_fhir_r4_core.code_system import (\ + CodeSystem, CodeSystemConcept, CodeSystemConceptDesignation, CodeSystemConceptProperty, CodeSystemFilter, \ + CodeSystemProperty +) +from generated.hl7_fhir_r4_core.communication import Communication, CommunicationPayload +from generated.hl7_fhir_r4_core.communication_request import (\ + CommunicationRequest, CommunicationRequestPayload +) +from generated.hl7_fhir_r4_core.compartment_definition import (\ + CompartmentDefinition, CompartmentDefinitionResource +) +from generated.hl7_fhir_r4_core.composition import (\ + Composition, CompositionAttester, CompositionEvent, CompositionRelatesTo, CompositionSection +) +from generated.hl7_fhir_r4_core.concept_map import (\ + ConceptMap, ConceptMapGroup, ConceptMapGroupElement, ConceptMapGroupElementTarget, ConceptMapGroupElementTargetDependsOn, \ + ConceptMapGroupUnmapped +) +from generated.hl7_fhir_r4_core.condition import Condition, ConditionEvidence, ConditionStage +from generated.hl7_fhir_r4_core.consent import (\ + Consent, ConsentPolicy, ConsentProvision, ConsentProvisionActor, ConsentProvisionData, ConsentVerification +) +from generated.hl7_fhir_r4_core.contract import (\ + Contract, ContractContentDefinition, ContractFriendly, ContractLegal, ContractRule, ContractSigner, ContractTerm, \ + ContractTermAction, ContractTermActionSubject, ContractTermAsset, ContractTermAssetContext, ContractTermAssetValuedItem, \ + ContractTermOffer, ContractTermOfferAnswer, ContractTermOfferParty, ContractTermSecurityLabel +) +from generated.hl7_fhir_r4_core.coverage import (\ + Coverage, CoverageClass, CoverageCostToBeneficiary, CoverageCostToBeneficiaryException +) +from generated.hl7_fhir_r4_core.coverage_eligibility_request import (\ + CoverageEligibilityRequest, CoverageEligibilityRequestInsurance, CoverageEligibilityRequestItem, CoverageEligibilityRequestItemDiagnosis, \ + CoverageEligibilityRequestSupportingInfo +) +from generated.hl7_fhir_r4_core.coverage_eligibility_response import (\ + CoverageEligibilityResponse, CoverageEligibilityResponseError, CoverageEligibilityResponseInsurance, CoverageEligibilityResponseInsuranceItem, \ + CoverageEligibilityResponseInsuranceItemBenefit +) +from generated.hl7_fhir_r4_core.detected_issue import (\ + DetectedIssue, DetectedIssueEvidence, DetectedIssueMitigation +) +from generated.hl7_fhir_r4_core.device import (\ + Device, DeviceDeviceName, DeviceProperty, DeviceSpecialization, DeviceUdiCarrier, DeviceVersion +) +from generated.hl7_fhir_r4_core.device_definition import (\ + DeviceDefinition, DeviceDefinitionCapability, DeviceDefinitionDeviceName, DeviceDefinitionMaterial, DeviceDefinitionProperty, \ + DeviceDefinitionSpecialization, DeviceDefinitionUdiDeviceIdentifier +) +from generated.hl7_fhir_r4_core.device_metric import DeviceMetric, DeviceMetricCalibration +from generated.hl7_fhir_r4_core.device_request import DeviceRequest, DeviceRequestParameter +from generated.hl7_fhir_r4_core.device_use_statement import DeviceUseStatement +from generated.hl7_fhir_r4_core.diagnostic_report import DiagnosticReport, DiagnosticReportMedia +from generated.hl7_fhir_r4_core.document_manifest import DocumentManifest, DocumentManifestRelated +from generated.hl7_fhir_r4_core.document_reference import (\ + DocumentReference, DocumentReferenceContent, DocumentReferenceContext, DocumentReferenceRelatesTo +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily +from generated.hl7_fhir_r4_core.effect_evidence_synthesis import (\ + EffectEvidenceSynthesis, EffectEvidenceSynthesisCertainty, EffectEvidenceSynthesisCertaintyCertaintySubcomponent, \ + EffectEvidenceSynthesisEffectEstimate, EffectEvidenceSynthesisEffectEstimatePrecisionEstimate, EffectEvidenceSynthesisResultsByExposure, \ + EffectEvidenceSynthesisSampleSize +) +from generated.hl7_fhir_r4_core.encounter import (\ + Encounter, EncounterClassHistory, EncounterDiagnosis, EncounterHospitalization, EncounterLocation, EncounterParticipant, \ + EncounterStatusHistory +) +from generated.hl7_fhir_r4_core.endpoint import Endpoint +from generated.hl7_fhir_r4_core.enrollment_request import EnrollmentRequest +from generated.hl7_fhir_r4_core.enrollment_response import EnrollmentResponse +from generated.hl7_fhir_r4_core.episode_of_care import (\ + EpisodeOfCare, EpisodeOfCareDiagnosis, EpisodeOfCareStatusHistory +) +from generated.hl7_fhir_r4_core.event_definition import EventDefinition +from generated.hl7_fhir_r4_core.evidence import Evidence +from generated.hl7_fhir_r4_core.evidence_variable import (\ + EvidenceVariable, EvidenceVariableCharacteristic +) +from generated.hl7_fhir_r4_core.example_scenario import (\ + ExampleScenario, ExampleScenarioActor, ExampleScenarioInstance, ExampleScenarioInstanceContainedInstance, \ + ExampleScenarioInstanceVersion, ExampleScenarioProcess, ExampleScenarioProcessStep, ExampleScenarioProcessStepAlternative, \ + ExampleScenarioProcessStepOperation +) +from generated.hl7_fhir_r4_core.explanation_of_benefit import (\ + ExplanationOfBenefit, ExplanationOfBenefitAccident, ExplanationOfBenefitAddItem, ExplanationOfBenefitAddItemDetail, \ + ExplanationOfBenefitAddItemDetailSubDetail, ExplanationOfBenefitBenefitBalance, ExplanationOfBenefitBenefitBalanceFinancial, \ + ExplanationOfBenefitCareTeam, ExplanationOfBenefitDiagnosis, ExplanationOfBenefitInsurance, ExplanationOfBenefitItem, \ + ExplanationOfBenefitItemAdjudication, ExplanationOfBenefitItemDetail, ExplanationOfBenefitItemDetailSubDetail, \ + ExplanationOfBenefitPayee, ExplanationOfBenefitPayment, ExplanationOfBenefitProcedure, ExplanationOfBenefitProcessNote, \ + ExplanationOfBenefitRelated, ExplanationOfBenefitSupportingInfo, ExplanationOfBenefitTotal +) +from generated.hl7_fhir_r4_core.family_member_history import (\ + FamilyMemberHistory, FamilyMemberHistoryCondition +) +from generated.hl7_fhir_r4_core.flag import Flag +from generated.hl7_fhir_r4_core.goal import Goal, GoalTarget +from generated.hl7_fhir_r4_core.graph_definition import (\ + GraphDefinition, GraphDefinitionLink, GraphDefinitionLinkTarget, GraphDefinitionLinkTargetCompartment +) +from generated.hl7_fhir_r4_core.group import Group, GroupCharacteristic, GroupMember +from generated.hl7_fhir_r4_core.guidance_response import GuidanceResponse +from generated.hl7_fhir_r4_core.healthcare_service import (\ + HealthcareService, HealthcareServiceAvailableTime, HealthcareServiceEligibility, HealthcareServiceNotAvailable +) +from generated.hl7_fhir_r4_core.imaging_study import (\ + ImagingStudy, ImagingStudySeries, ImagingStudySeriesInstance, ImagingStudySeriesPerformer +) +from generated.hl7_fhir_r4_core.immunization import (\ + Immunization, ImmunizationEducation, ImmunizationPerformer, ImmunizationProtocolApplied, ImmunizationReaction +) +from generated.hl7_fhir_r4_core.immunization_evaluation import ImmunizationEvaluation +from generated.hl7_fhir_r4_core.immunization_recommendation import (\ + ImmunizationRecommendation, ImmunizationRecommendationRecommendation, ImmunizationRecommendationRecommendationDateCriterion +) +from generated.hl7_fhir_r4_core.implementation_guide import (\ + ImplementationGuide, ImplementationGuideDefinition, ImplementationGuideDefinitionGrouping, ImplementationGuideDefinitionPage, \ + ImplementationGuideDefinitionParameter, ImplementationGuideDefinitionResource, ImplementationGuideDefinitionTemplate, \ + ImplementationGuideDependsOn, ImplementationGuideGlobal, ImplementationGuideManifest, ImplementationGuideManifestPage, \ + ImplementationGuideManifestResource +) +from generated.hl7_fhir_r4_core.insurance_plan import (\ + InsurancePlan, InsurancePlanContact, InsurancePlanCoverage, InsurancePlanCoverageBenefit, InsurancePlanCoverageBenefitLimit, \ + InsurancePlanPlan, InsurancePlanPlanGeneralCost, InsurancePlanPlanSpecificCost, InsurancePlanPlanSpecificCostBenefit, \ + InsurancePlanPlanSpecificCostBenefitCost +) +from generated.hl7_fhir_r4_core.invoice import (\ + Invoice, InvoiceLineItem, InvoiceLineItemPriceComponent, InvoiceParticipant +) +from generated.hl7_fhir_r4_core.library import Library +from generated.hl7_fhir_r4_core.linkage import Linkage, LinkageItem +from generated.hl7_fhir_r4_core.list import List, ListEntry +from generated.hl7_fhir_r4_core.location import Location, LocationHoursOfOperation, LocationPosition +from generated.hl7_fhir_r4_core.measure import (\ + Measure, MeasureGroup, MeasureGroupPopulation, MeasureGroupStratifier, MeasureGroupStratifierComponent, \ + MeasureSupplementalData +) +from generated.hl7_fhir_r4_core.measure_report import (\ + MeasureReport, MeasureReportGroup, MeasureReportGroupPopulation, MeasureReportGroupStratifier, MeasureReportGroupStratifierStratum, \ + MeasureReportGroupStratifierStratumComponent, MeasureReportGroupStratifierStratumPopulation +) +from generated.hl7_fhir_r4_core.media import Media +from generated.hl7_fhir_r4_core.medication import Medication, MedicationBatch, MedicationIngredient +from generated.hl7_fhir_r4_core.medication_administration import (\ + MedicationAdministration, MedicationAdministrationDosage, MedicationAdministrationPerformer +) +from generated.hl7_fhir_r4_core.medication_dispense import (\ + MedicationDispense, MedicationDispensePerformer, MedicationDispenseSubstitution +) +from generated.hl7_fhir_r4_core.medication_knowledge import (\ + MedicationKnowledge, MedicationKnowledgeAdministrationGuidelines, MedicationKnowledgeAdministrationGuidelinesDosage, \ + MedicationKnowledgeAdministrationGuidelinesPatientCharacteristics, MedicationKnowledgeCost, MedicationKnowledgeDrugCharacteristic, \ + MedicationKnowledgeIngredient, MedicationKnowledgeKinetics, MedicationKnowledgeMedicineClassification, \ + MedicationKnowledgeMonitoringProgram, MedicationKnowledgeMonograph, MedicationKnowledgePackaging, MedicationKnowledgeRegulatory, \ + MedicationKnowledgeRegulatoryMaxDispense, MedicationKnowledgeRegulatorySchedule, MedicationKnowledgeRegulatorySubstitution, \ + MedicationKnowledgeRelatedMedicationKnowledge +) +from generated.hl7_fhir_r4_core.medication_request import (\ + MedicationRequest, MedicationRequestDispenseRequest, MedicationRequestDispenseRequestInitialFill, MedicationRequestSubstitution +) +from generated.hl7_fhir_r4_core.medication_statement import MedicationStatement +from generated.hl7_fhir_r4_core.medicinal_product import (\ + MedicinalProduct, MedicinalProductManufacturingBusinessOperation, MedicinalProductName, MedicinalProductNameCountryLanguage, \ + MedicinalProductNameNamePart, MedicinalProductSpecialDesignation +) +from generated.hl7_fhir_r4_core.medicinal_product_authorization import (\ + MedicinalProductAuthorization, MedicinalProductAuthorizationJurisdictionalAuthorization, MedicinalProductAuthorizationProcedure +) +from generated.hl7_fhir_r4_core.medicinal_product_contraindication import (\ + MedicinalProductContraindication, MedicinalProductContraindicationOtherTherapy +) +from generated.hl7_fhir_r4_core.medicinal_product_indication import (\ + MedicinalProductIndication, MedicinalProductIndicationOtherTherapy +) +from generated.hl7_fhir_r4_core.medicinal_product_ingredient import (\ + MedicinalProductIngredient, MedicinalProductIngredientSpecifiedSubstance, MedicinalProductIngredientSpecifiedSubstanceStrength, \ + MedicinalProductIngredientSpecifiedSubstanceStrengthReferenceStrength, MedicinalProductIngredientSubstance +) +from generated.hl7_fhir_r4_core.medicinal_product_interaction import (\ + MedicinalProductInteraction, MedicinalProductInteractionInteractant +) +from generated.hl7_fhir_r4_core.medicinal_product_manufactured import MedicinalProductManufactured +from generated.hl7_fhir_r4_core.medicinal_product_packaged import (\ + MedicinalProductPackaged, MedicinalProductPackagedBatchIdentifier, MedicinalProductPackagedPackageItem +) +from generated.hl7_fhir_r4_core.medicinal_product_pharmaceutical import (\ + MedicinalProductPharmaceutical, MedicinalProductPharmaceuticalCharacteristics, MedicinalProductPharmaceuticalRouteOfAdministration, \ + MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpecies, MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpeciesWithdrawalPeriod +) +from generated.hl7_fhir_r4_core.medicinal_product_undesirable_effect import MedicinalProductUndesirableEffect +from generated.hl7_fhir_r4_core.message_definition import (\ + MessageDefinition, MessageDefinitionAllowedResponse, MessageDefinitionFocus +) +from generated.hl7_fhir_r4_core.message_header import (\ + MessageHeader, MessageHeaderDestination, MessageHeaderResponse, MessageHeaderSource +) +from generated.hl7_fhir_r4_core.molecular_sequence import (\ + MolecularSequence, MolecularSequenceQuality, MolecularSequenceQualityRoc, MolecularSequenceReferenceSeq, \ + MolecularSequenceRepository, MolecularSequenceStructureVariant, MolecularSequenceStructureVariantInner, \ + MolecularSequenceStructureVariantOuter, MolecularSequenceVariant +) +from generated.hl7_fhir_r4_core.naming_system import NamingSystem, NamingSystemUniqueId +from generated.hl7_fhir_r4_core.nutrition_order import (\ + NutritionOrder, NutritionOrderEnteralFormula, NutritionOrderEnteralFormulaAdministration, NutritionOrderOralDiet, \ + NutritionOrderOralDietNutrient, NutritionOrderOralDietTexture, NutritionOrderSupplement +) +from generated.hl7_fhir_r4_core.observation import (\ + Observation, ObservationComponent, ObservationReferenceRange +) +from generated.hl7_fhir_r4_core.observation_definition import (\ + ObservationDefinition, ObservationDefinitionQualifiedInterval, ObservationDefinitionQuantitativeDetails +) +from generated.hl7_fhir_r4_core.operation_definition import (\ + OperationDefinition, OperationDefinitionOverload, OperationDefinitionParameter, OperationDefinitionParameterBinding, \ + OperationDefinitionParameterReferencedFrom +) +from generated.hl7_fhir_r4_core.operation_outcome import OperationOutcome, OperationOutcomeIssue +from generated.hl7_fhir_r4_core.organization import Organization, OrganizationContact +from generated.hl7_fhir_r4_core.organization_affiliation import OrganizationAffiliation +from generated.hl7_fhir_r4_core.parameters import Parameters, ParametersParameter +from generated.hl7_fhir_r4_core.patient import (\ + Patient, PatientCommunication, PatientContact, PatientLink +) +from generated.hl7_fhir_r4_core.payment_notice import PaymentNotice +from generated.hl7_fhir_r4_core.payment_reconciliation import (\ + PaymentReconciliation, PaymentReconciliationDetail, PaymentReconciliationProcessNote +) +from generated.hl7_fhir_r4_core.person import Person, PersonLink +from generated.hl7_fhir_r4_core.plan_definition import (\ + PlanDefinition, PlanDefinitionAction, PlanDefinitionActionCondition, PlanDefinitionActionDynamicValue, \ + PlanDefinitionActionParticipant, PlanDefinitionActionRelatedAction, PlanDefinitionGoal, PlanDefinitionGoalTarget +) +from generated.hl7_fhir_r4_core.practitioner import Practitioner, PractitionerQualification +from generated.hl7_fhir_r4_core.practitioner_role import (\ + PractitionerRole, PractitionerRoleAvailableTime, PractitionerRoleNotAvailable +) +from generated.hl7_fhir_r4_core.procedure import Procedure, ProcedureFocalDevice, ProcedurePerformer +from generated.hl7_fhir_r4_core.provenance import Provenance, ProvenanceAgent, ProvenanceEntity +from generated.hl7_fhir_r4_core.questionnaire import (\ + Questionnaire, QuestionnaireItem, QuestionnaireItemAnswerOption, QuestionnaireItemEnableWhen, QuestionnaireItemInitial +) +from generated.hl7_fhir_r4_core.questionnaire_response import (\ + QuestionnaireResponse, QuestionnaireResponseItem, QuestionnaireResponseItemAnswer +) +from generated.hl7_fhir_r4_core.related_person import RelatedPerson, RelatedPersonCommunication +from generated.hl7_fhir_r4_core.request_group import (\ + RequestGroup, RequestGroupAction, RequestGroupActionCondition, RequestGroupActionRelatedAction +) +from generated.hl7_fhir_r4_core.research_definition import ResearchDefinition +from generated.hl7_fhir_r4_core.research_element_definition import (\ + ResearchElementDefinition, ResearchElementDefinitionCharacteristic +) +from generated.hl7_fhir_r4_core.research_study import (\ + ResearchStudy, ResearchStudyArm, ResearchStudyObjective +) +from generated.hl7_fhir_r4_core.research_subject import ResearchSubject +from generated.hl7_fhir_r4_core.resource import Resource +from generated.hl7_fhir_r4_core.resource_families import ResourceFamily +from generated.hl7_fhir_r4_core.risk_assessment import RiskAssessment, RiskAssessmentPrediction +from generated.hl7_fhir_r4_core.risk_evidence_synthesis import (\ + RiskEvidenceSynthesis, RiskEvidenceSynthesisCertainty, RiskEvidenceSynthesisCertaintyCertaintySubcomponent, \ + RiskEvidenceSynthesisRiskEstimate, RiskEvidenceSynthesisRiskEstimatePrecisionEstimate, RiskEvidenceSynthesisSampleSize +) +from generated.hl7_fhir_r4_core.schedule import Schedule +from generated.hl7_fhir_r4_core.search_parameter import SearchParameter, SearchParameterComponent +from generated.hl7_fhir_r4_core.service_request import ServiceRequest +from generated.hl7_fhir_r4_core.slot import Slot +from generated.hl7_fhir_r4_core.specimen import (\ + Specimen, SpecimenCollection, SpecimenContainer, SpecimenProcessing +) +from generated.hl7_fhir_r4_core.specimen_definition import (\ + SpecimenDefinition, SpecimenDefinitionTypeTested, SpecimenDefinitionTypeTestedContainer, SpecimenDefinitionTypeTestedContainerAdditive, \ + SpecimenDefinitionTypeTestedHandling +) +from generated.hl7_fhir_r4_core.structure_definition import (\ + StructureDefinition, StructureDefinitionContext, StructureDefinitionDifferential, StructureDefinitionMapping, \ + StructureDefinitionSnapshot +) +from generated.hl7_fhir_r4_core.structure_map import (\ + StructureMap, StructureMapGroup, StructureMapGroupInput, StructureMapGroupRule, StructureMapGroupRuleDependent, \ + StructureMapGroupRuleSource, StructureMapGroupRuleTarget, StructureMapGroupRuleTargetParameter, StructureMapStructure +) +from generated.hl7_fhir_r4_core.subscription import Subscription, SubscriptionChannel +from generated.hl7_fhir_r4_core.substance import Substance, SubstanceIngredient, SubstanceInstance +from generated.hl7_fhir_r4_core.substance_nucleic_acid import (\ + SubstanceNucleicAcid, SubstanceNucleicAcidSubunit, SubstanceNucleicAcidSubunitLinkage, SubstanceNucleicAcidSubunitSugar +) +from generated.hl7_fhir_r4_core.substance_polymer import (\ + SubstancePolymer, SubstancePolymerMonomerSet, SubstancePolymerMonomerSetStartingMaterial, SubstancePolymerRepeat, \ + SubstancePolymerRepeatRepeatUnit, SubstancePolymerRepeatRepeatUnitDegreeOfPolymerisation, SubstancePolymerRepeatRepeatUnitStructuralRepresentation +) +from generated.hl7_fhir_r4_core.substance_protein import SubstanceProtein, SubstanceProteinSubunit +from generated.hl7_fhir_r4_core.substance_reference_information import (\ + SubstanceReferenceInformation, SubstanceReferenceInformationClassification, SubstanceReferenceInformationGene, \ + SubstanceReferenceInformationGeneElement, SubstanceReferenceInformationTarget +) +from generated.hl7_fhir_r4_core.substance_source_material import (\ + SubstanceSourceMaterial, SubstanceSourceMaterialFractionDescription, SubstanceSourceMaterialOrganism, \ + SubstanceSourceMaterialOrganismAuthor, SubstanceSourceMaterialOrganismHybrid, SubstanceSourceMaterialOrganismOrganismGeneral, \ + SubstanceSourceMaterialPartDescription +) +from generated.hl7_fhir_r4_core.substance_specification import (\ + SubstanceSpecification, SubstanceSpecificationCode, SubstanceSpecificationMoiety, SubstanceSpecificationName, \ + SubstanceSpecificationNameOfficial, SubstanceSpecificationProperty, SubstanceSpecificationRelationship, \ + SubstanceSpecificationStructure, SubstanceSpecificationStructureIsotope, SubstanceSpecificationStructureIsotopeMolecularWeight, \ + SubstanceSpecificationStructureRepresentation +) +from generated.hl7_fhir_r4_core.supply_delivery import SupplyDelivery, SupplyDeliverySuppliedItem +from generated.hl7_fhir_r4_core.supply_request import SupplyRequest, SupplyRequestParameter +from generated.hl7_fhir_r4_core.task import Task, TaskInput, TaskOutput, TaskRestriction +from generated.hl7_fhir_r4_core.terminology_capabilities import (\ + TerminologyCapabilities, TerminologyCapabilitiesClosure, TerminologyCapabilitiesCodeSystem, TerminologyCapabilitiesCodeSystemVersion, \ + TerminologyCapabilitiesCodeSystemVersionFilter, TerminologyCapabilitiesExpansion, TerminologyCapabilitiesExpansionParameter, \ + TerminologyCapabilitiesImplementation, TerminologyCapabilitiesSoftware, TerminologyCapabilitiesTranslation, \ + TerminologyCapabilitiesValidateCode +) +from generated.hl7_fhir_r4_core.test_report import (\ + TestReport, TestReportParticipant, TestReportSetup, TestReportSetupAction, TestReportSetupActionAssert, \ + TestReportSetupActionOperation, TestReportTeardown, TestReportTeardownAction, TestReportTest, TestReportTestAction +) +from generated.hl7_fhir_r4_core.test_script import (\ + TestScript, TestScriptDestination, TestScriptFixture, TestScriptMetadata, TestScriptMetadataCapability, \ + TestScriptMetadataLink, TestScriptOrigin, TestScriptSetup, TestScriptSetupAction, TestScriptSetupActionAssert, \ + TestScriptSetupActionOperation, TestScriptSetupActionOperationRequestHeader, TestScriptTeardown, TestScriptTeardownAction, \ + TestScriptTest, TestScriptTestAction, TestScriptVariable +) +from generated.hl7_fhir_r4_core.value_set import (\ + ValueSet, ValueSetCompose, ValueSetComposeInclude, ValueSetComposeIncludeConcept, ValueSetComposeIncludeConceptDesignation, \ + ValueSetComposeIncludeFilter, ValueSetExpansion, ValueSetExpansionContains, ValueSetExpansionParameter +) +from generated.hl7_fhir_r4_core.verification_result import (\ + VerificationResult, VerificationResultAttestation, VerificationResultPrimarySource, VerificationResultValidator +) +from generated.hl7_fhir_r4_core.vision_prescription import (\ + VisionPrescription, VisionPrescriptionLensSpecification, VisionPrescriptionLensSpecificationPrism +) + +__all__ = [ + 'Account', + 'AccountCoverage', + 'AccountGuarantor', + 'ActivityDefinition', + 'ActivityDefinitionDynamicValue', + 'ActivityDefinitionParticipant', + 'Address', + 'AdverseEvent', + 'AdverseEventSuspectEntity', + 'AdverseEventSuspectEntityCausality', + 'Age', + 'AllergyIntolerance', + 'AllergyIntoleranceReaction', + 'Annotation', + 'Appointment', + 'AppointmentParticipant', + 'AppointmentResponse', + 'Attachment', + 'AuditEvent', + 'AuditEventAgent', + 'AuditEventAgentNetwork', + 'AuditEventEntity', + 'AuditEventEntityDetail', + 'AuditEventSource', + 'BackboneElement', + 'Basic', + 'Binary', + 'BiologicallyDerivedProduct', + 'BiologicallyDerivedProductCollection', + 'BiologicallyDerivedProductManipulation', + 'BiologicallyDerivedProductProcessing', + 'BiologicallyDerivedProductStorage', + 'BodyStructure', + 'Bundle', + 'BundleEntry', + 'BundleEntryRequest', + 'BundleEntryResponse', + 'BundleEntrySearch', + 'BundleLink', + 'CapabilityStatement', + 'CapabilityStatementDocument', + 'CapabilityStatementImplementation', + 'CapabilityStatementMessaging', + 'CapabilityStatementMessagingEndpoint', + 'CapabilityStatementMessagingSupportedMessage', + 'CapabilityStatementRest', + 'CapabilityStatementRestInteraction', + 'CapabilityStatementRestResource', + 'CapabilityStatementRestResourceInteraction', + 'CapabilityStatementRestResourceOperation', + 'CapabilityStatementRestResourceSearchParam', + 'CapabilityStatementRestSecurity', + 'CapabilityStatementSoftware', + 'CarePlan', + 'CarePlanActivity', + 'CarePlanActivityDetail', + 'CareTeam', + 'CareTeamParticipant', + 'CatalogEntry', + 'CatalogEntryRelatedEntry', + 'ChargeItem', + 'ChargeItemDefinition', + 'ChargeItemDefinitionApplicability', + 'ChargeItemDefinitionPropertyGroup', + 'ChargeItemDefinitionPropertyGroupPriceComponent', + 'ChargeItemPerformer', + 'Claim', + 'ClaimAccident', + 'ClaimCareTeam', + 'ClaimDiagnosis', + 'ClaimInsurance', + 'ClaimItem', + 'ClaimItemDetail', + 'ClaimItemDetailSubDetail', + 'ClaimPayee', + 'ClaimProcedure', + 'ClaimRelated', + 'ClaimResponse', + 'ClaimResponseAddItem', + 'ClaimResponseAddItemDetail', + 'ClaimResponseAddItemDetailSubDetail', + 'ClaimResponseError', + 'ClaimResponseInsurance', + 'ClaimResponseItem', + 'ClaimResponseItemAdjudication', + 'ClaimResponseItemDetail', + 'ClaimResponseItemDetailSubDetail', + 'ClaimResponsePayment', + 'ClaimResponseProcessNote', + 'ClaimResponseTotal', + 'ClaimSupportingInfo', + 'ClinicalImpression', + 'ClinicalImpressionFinding', + 'ClinicalImpressionInvestigation', + 'CodeSystem', + 'CodeSystemConcept', + 'CodeSystemConceptDesignation', + 'CodeSystemConceptProperty', + 'CodeSystemFilter', + 'CodeSystemProperty', + 'CodeableConcept', + 'Coding', + 'Communication', + 'CommunicationPayload', + 'CommunicationRequest', + 'CommunicationRequestPayload', + 'CompartmentDefinition', + 'CompartmentDefinitionResource', + 'Composition', + 'CompositionAttester', + 'CompositionEvent', + 'CompositionRelatesTo', + 'CompositionSection', + 'ConceptMap', + 'ConceptMapGroup', + 'ConceptMapGroupElement', + 'ConceptMapGroupElementTarget', + 'ConceptMapGroupElementTargetDependsOn', + 'ConceptMapGroupUnmapped', + 'Condition', + 'ConditionEvidence', + 'ConditionStage', + 'Consent', + 'ConsentPolicy', + 'ConsentProvision', + 'ConsentProvisionActor', + 'ConsentProvisionData', + 'ConsentVerification', + 'ContactDetail', + 'ContactPoint', + 'Contract', + 'ContractContentDefinition', + 'ContractFriendly', + 'ContractLegal', + 'ContractRule', + 'ContractSigner', + 'ContractTerm', + 'ContractTermAction', + 'ContractTermActionSubject', + 'ContractTermAsset', + 'ContractTermAssetContext', + 'ContractTermAssetValuedItem', + 'ContractTermOffer', + 'ContractTermOfferAnswer', + 'ContractTermOfferParty', + 'ContractTermSecurityLabel', + 'Contributor', + 'Count', + 'Coverage', + 'CoverageClass', + 'CoverageCostToBeneficiary', + 'CoverageCostToBeneficiaryException', + 'CoverageEligibilityRequest', + 'CoverageEligibilityRequestInsurance', + 'CoverageEligibilityRequestItem', + 'CoverageEligibilityRequestItemDiagnosis', + 'CoverageEligibilityRequestSupportingInfo', + 'CoverageEligibilityResponse', + 'CoverageEligibilityResponseError', + 'CoverageEligibilityResponseInsurance', + 'CoverageEligibilityResponseInsuranceItem', + 'CoverageEligibilityResponseInsuranceItemBenefit', + 'DataRequirement', + 'DetectedIssue', + 'DetectedIssueEvidence', + 'DetectedIssueMitigation', + 'Device', + 'DeviceDefinition', + 'DeviceDefinitionCapability', + 'DeviceDefinitionDeviceName', + 'DeviceDefinitionMaterial', + 'DeviceDefinitionProperty', + 'DeviceDefinitionSpecialization', + 'DeviceDefinitionUdiDeviceIdentifier', + 'DeviceDeviceName', + 'DeviceMetric', + 'DeviceMetricCalibration', + 'DeviceProperty', + 'DeviceRequest', + 'DeviceRequestParameter', + 'DeviceSpecialization', + 'DeviceUdiCarrier', + 'DeviceUseStatement', + 'DeviceVersion', + 'DiagnosticReport', + 'DiagnosticReportMedia', + 'Distance', + 'DocumentManifest', + 'DocumentManifestRelated', + 'DocumentReference', + 'DocumentReferenceContent', + 'DocumentReferenceContext', + 'DocumentReferenceRelatesTo', + 'DomainResource', + 'Dosage', + 'Duration', + 'EffectEvidenceSynthesis', + 'EffectEvidenceSynthesisCertainty', + 'EffectEvidenceSynthesisCertaintyCertaintySubcomponent', + 'EffectEvidenceSynthesisEffectEstimate', + 'EffectEvidenceSynthesisEffectEstimatePrecisionEstimate', + 'EffectEvidenceSynthesisResultsByExposure', + 'EffectEvidenceSynthesisSampleSize', + 'Element', + 'ElementDefinition', + 'Encounter', + 'EncounterClassHistory', + 'EncounterDiagnosis', + 'EncounterHospitalization', + 'EncounterLocation', + 'EncounterParticipant', + 'EncounterStatusHistory', + 'Endpoint', + 'EnrollmentRequest', + 'EnrollmentResponse', + 'EpisodeOfCare', + 'EpisodeOfCareDiagnosis', + 'EpisodeOfCareStatusHistory', + 'EventDefinition', + 'Evidence', + 'EvidenceVariable', + 'EvidenceVariableCharacteristic', + 'ExampleScenario', + 'ExampleScenarioActor', + 'ExampleScenarioInstance', + 'ExampleScenarioInstanceContainedInstance', + 'ExampleScenarioInstanceVersion', + 'ExampleScenarioProcess', + 'ExampleScenarioProcessStep', + 'ExampleScenarioProcessStepAlternative', + 'ExampleScenarioProcessStepOperation', + 'ExplanationOfBenefit', + 'ExplanationOfBenefitAccident', + 'ExplanationOfBenefitAddItem', + 'ExplanationOfBenefitAddItemDetail', + 'ExplanationOfBenefitAddItemDetailSubDetail', + 'ExplanationOfBenefitBenefitBalance', + 'ExplanationOfBenefitBenefitBalanceFinancial', + 'ExplanationOfBenefitCareTeam', + 'ExplanationOfBenefitDiagnosis', + 'ExplanationOfBenefitInsurance', + 'ExplanationOfBenefitItem', + 'ExplanationOfBenefitItemAdjudication', + 'ExplanationOfBenefitItemDetail', + 'ExplanationOfBenefitItemDetailSubDetail', + 'ExplanationOfBenefitPayee', + 'ExplanationOfBenefitPayment', + 'ExplanationOfBenefitProcedure', + 'ExplanationOfBenefitProcessNote', + 'ExplanationOfBenefitRelated', + 'ExplanationOfBenefitSupportingInfo', + 'ExplanationOfBenefitTotal', + 'Expression', + 'Extension', + 'FamilyMemberHistory', + 'FamilyMemberHistoryCondition', + 'Flag', + 'Goal', + 'GoalTarget', + 'GraphDefinition', + 'GraphDefinitionLink', + 'GraphDefinitionLinkTarget', + 'GraphDefinitionLinkTargetCompartment', + 'Group', + 'GroupCharacteristic', + 'GroupMember', + 'GuidanceResponse', + 'HealthcareService', + 'HealthcareServiceAvailableTime', + 'HealthcareServiceEligibility', + 'HealthcareServiceNotAvailable', + 'HumanName', + 'Identifier', + 'ImagingStudy', + 'ImagingStudySeries', + 'ImagingStudySeriesInstance', + 'ImagingStudySeriesPerformer', + 'Immunization', + 'ImmunizationEducation', + 'ImmunizationEvaluation', + 'ImmunizationPerformer', + 'ImmunizationProtocolApplied', + 'ImmunizationReaction', + 'ImmunizationRecommendation', + 'ImmunizationRecommendationRecommendation', + 'ImmunizationRecommendationRecommendationDateCriterion', + 'ImplementationGuide', + 'ImplementationGuideDefinition', + 'ImplementationGuideDefinitionGrouping', + 'ImplementationGuideDefinitionPage', + 'ImplementationGuideDefinitionParameter', + 'ImplementationGuideDefinitionResource', + 'ImplementationGuideDefinitionTemplate', + 'ImplementationGuideDependsOn', + 'ImplementationGuideGlobal', + 'ImplementationGuideManifest', + 'ImplementationGuideManifestPage', + 'ImplementationGuideManifestResource', + 'InsurancePlan', + 'InsurancePlanContact', + 'InsurancePlanCoverage', + 'InsurancePlanCoverageBenefit', + 'InsurancePlanCoverageBenefitLimit', + 'InsurancePlanPlan', + 'InsurancePlanPlanGeneralCost', + 'InsurancePlanPlanSpecificCost', + 'InsurancePlanPlanSpecificCostBenefit', + 'InsurancePlanPlanSpecificCostBenefitCost', + 'Invoice', + 'InvoiceLineItem', + 'InvoiceLineItemPriceComponent', + 'InvoiceParticipant', + 'Library', + 'Linkage', + 'LinkageItem', + 'List', + 'ListEntry', + 'Location', + 'LocationHoursOfOperation', + 'LocationPosition', + 'MarketingStatus', + 'Measure', + 'MeasureGroup', + 'MeasureGroupPopulation', + 'MeasureGroupStratifier', + 'MeasureGroupStratifierComponent', + 'MeasureReport', + 'MeasureReportGroup', + 'MeasureReportGroupPopulation', + 'MeasureReportGroupStratifier', + 'MeasureReportGroupStratifierStratum', + 'MeasureReportGroupStratifierStratumComponent', + 'MeasureReportGroupStratifierStratumPopulation', + 'MeasureSupplementalData', + 'Media', + 'Medication', + 'MedicationAdministration', + 'MedicationAdministrationDosage', + 'MedicationAdministrationPerformer', + 'MedicationBatch', + 'MedicationDispense', + 'MedicationDispensePerformer', + 'MedicationDispenseSubstitution', + 'MedicationIngredient', + 'MedicationKnowledge', + 'MedicationKnowledgeAdministrationGuidelines', + 'MedicationKnowledgeAdministrationGuidelinesDosage', + 'MedicationKnowledgeAdministrationGuidelinesPatientCharacteristics', + 'MedicationKnowledgeCost', + 'MedicationKnowledgeDrugCharacteristic', + 'MedicationKnowledgeIngredient', + 'MedicationKnowledgeKinetics', + 'MedicationKnowledgeMedicineClassification', + 'MedicationKnowledgeMonitoringProgram', + 'MedicationKnowledgeMonograph', + 'MedicationKnowledgePackaging', + 'MedicationKnowledgeRegulatory', + 'MedicationKnowledgeRegulatoryMaxDispense', + 'MedicationKnowledgeRegulatorySchedule', + 'MedicationKnowledgeRegulatorySubstitution', + 'MedicationKnowledgeRelatedMedicationKnowledge', + 'MedicationRequest', + 'MedicationRequestDispenseRequest', + 'MedicationRequestDispenseRequestInitialFill', + 'MedicationRequestSubstitution', + 'MedicationStatement', + 'MedicinalProduct', + 'MedicinalProductAuthorization', + 'MedicinalProductAuthorizationJurisdictionalAuthorization', + 'MedicinalProductAuthorizationProcedure', + 'MedicinalProductContraindication', + 'MedicinalProductContraindicationOtherTherapy', + 'MedicinalProductIndication', + 'MedicinalProductIndicationOtherTherapy', + 'MedicinalProductIngredient', + 'MedicinalProductIngredientSpecifiedSubstance', + 'MedicinalProductIngredientSpecifiedSubstanceStrength', + 'MedicinalProductIngredientSpecifiedSubstanceStrengthReferenceStrength', + 'MedicinalProductIngredientSubstance', + 'MedicinalProductInteraction', + 'MedicinalProductInteractionInteractant', + 'MedicinalProductManufactured', + 'MedicinalProductManufacturingBusinessOperation', + 'MedicinalProductName', + 'MedicinalProductNameCountryLanguage', + 'MedicinalProductNameNamePart', + 'MedicinalProductPackaged', + 'MedicinalProductPackagedBatchIdentifier', + 'MedicinalProductPackagedPackageItem', + 'MedicinalProductPharmaceutical', + 'MedicinalProductPharmaceuticalCharacteristics', + 'MedicinalProductPharmaceuticalRouteOfAdministration', + 'MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpecies', + 'MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpeciesWithdrawalPeriod', + 'MedicinalProductSpecialDesignation', + 'MedicinalProductUndesirableEffect', + 'MessageDefinition', + 'MessageDefinitionAllowedResponse', + 'MessageDefinitionFocus', + 'MessageHeader', + 'MessageHeaderDestination', + 'MessageHeaderResponse', + 'MessageHeaderSource', + 'Meta', + 'MolecularSequence', + 'MolecularSequenceQuality', + 'MolecularSequenceQualityRoc', + 'MolecularSequenceReferenceSeq', + 'MolecularSequenceRepository', + 'MolecularSequenceStructureVariant', + 'MolecularSequenceStructureVariantInner', + 'MolecularSequenceStructureVariantOuter', + 'MolecularSequenceVariant', + 'Money', + 'NamingSystem', + 'NamingSystemUniqueId', + 'Narrative', + 'NutritionOrder', + 'NutritionOrderEnteralFormula', + 'NutritionOrderEnteralFormulaAdministration', + 'NutritionOrderOralDiet', + 'NutritionOrderOralDietNutrient', + 'NutritionOrderOralDietTexture', + 'NutritionOrderSupplement', + 'Observation', + 'ObservationComponent', + 'ObservationDefinition', + 'ObservationDefinitionQualifiedInterval', + 'ObservationDefinitionQuantitativeDetails', + 'ObservationReferenceRange', + 'OperationDefinition', + 'OperationDefinitionOverload', + 'OperationDefinitionParameter', + 'OperationDefinitionParameterBinding', + 'OperationDefinitionParameterReferencedFrom', + 'OperationOutcome', + 'OperationOutcomeIssue', + 'Organization', + 'OrganizationAffiliation', + 'OrganizationContact', + 'ParameterDefinition', + 'Parameters', + 'ParametersParameter', + 'Patient', + 'PatientCommunication', + 'PatientContact', + 'PatientLink', + 'PaymentNotice', + 'PaymentReconciliation', + 'PaymentReconciliationDetail', + 'PaymentReconciliationProcessNote', + 'Period', + 'Person', + 'PersonLink', + 'PlanDefinition', + 'PlanDefinitionAction', + 'PlanDefinitionActionCondition', + 'PlanDefinitionActionDynamicValue', + 'PlanDefinitionActionParticipant', + 'PlanDefinitionActionRelatedAction', + 'PlanDefinitionGoal', + 'PlanDefinitionGoalTarget', + 'Population', + 'Practitioner', + 'PractitionerQualification', + 'PractitionerRole', + 'PractitionerRoleAvailableTime', + 'PractitionerRoleNotAvailable', + 'Procedure', + 'ProcedureFocalDevice', + 'ProcedurePerformer', + 'ProdCharacteristic', + 'ProductShelfLife', + 'Provenance', + 'ProvenanceAgent', + 'ProvenanceEntity', + 'Quantity', + 'Questionnaire', + 'QuestionnaireItem', + 'QuestionnaireItemAnswerOption', + 'QuestionnaireItemEnableWhen', + 'QuestionnaireItemInitial', + 'QuestionnaireResponse', + 'QuestionnaireResponseItem', + 'QuestionnaireResponseItemAnswer', + 'Range', + 'Ratio', + 'Reference', + 'RelatedArtifact', + 'RelatedPerson', + 'RelatedPersonCommunication', + 'RequestGroup', + 'RequestGroupAction', + 'RequestGroupActionCondition', + 'RequestGroupActionRelatedAction', + 'ResearchDefinition', + 'ResearchElementDefinition', + 'ResearchElementDefinitionCharacteristic', + 'ResearchStudy', + 'ResearchStudyArm', + 'ResearchStudyObjective', + 'ResearchSubject', + 'Resource', + 'RiskAssessment', + 'RiskAssessmentPrediction', + 'RiskEvidenceSynthesis', + 'RiskEvidenceSynthesisCertainty', + 'RiskEvidenceSynthesisCertaintyCertaintySubcomponent', + 'RiskEvidenceSynthesisRiskEstimate', + 'RiskEvidenceSynthesisRiskEstimatePrecisionEstimate', + 'RiskEvidenceSynthesisSampleSize', + 'SampledData', + 'Schedule', + 'SearchParameter', + 'SearchParameterComponent', + 'ServiceRequest', + 'Signature', + 'Slot', + 'Specimen', + 'SpecimenCollection', + 'SpecimenContainer', + 'SpecimenDefinition', + 'SpecimenDefinitionTypeTested', + 'SpecimenDefinitionTypeTestedContainer', + 'SpecimenDefinitionTypeTestedContainerAdditive', + 'SpecimenDefinitionTypeTestedHandling', + 'SpecimenProcessing', + 'StructureDefinition', + 'StructureDefinitionContext', + 'StructureDefinitionDifferential', + 'StructureDefinitionMapping', + 'StructureDefinitionSnapshot', + 'StructureMap', + 'StructureMapGroup', + 'StructureMapGroupInput', + 'StructureMapGroupRule', + 'StructureMapGroupRuleDependent', + 'StructureMapGroupRuleSource', + 'StructureMapGroupRuleTarget', + 'StructureMapGroupRuleTargetParameter', + 'StructureMapStructure', + 'Subscription', + 'SubscriptionChannel', + 'Substance', + 'SubstanceAmount', + 'SubstanceIngredient', + 'SubstanceInstance', + 'SubstanceNucleicAcid', + 'SubstanceNucleicAcidSubunit', + 'SubstanceNucleicAcidSubunitLinkage', + 'SubstanceNucleicAcidSubunitSugar', + 'SubstancePolymer', + 'SubstancePolymerMonomerSet', + 'SubstancePolymerMonomerSetStartingMaterial', + 'SubstancePolymerRepeat', + 'SubstancePolymerRepeatRepeatUnit', + 'SubstancePolymerRepeatRepeatUnitDegreeOfPolymerisation', + 'SubstancePolymerRepeatRepeatUnitStructuralRepresentation', + 'SubstanceProtein', + 'SubstanceProteinSubunit', + 'SubstanceReferenceInformation', + 'SubstanceReferenceInformationClassification', + 'SubstanceReferenceInformationGene', + 'SubstanceReferenceInformationGeneElement', + 'SubstanceReferenceInformationTarget', + 'SubstanceSourceMaterial', + 'SubstanceSourceMaterialFractionDescription', + 'SubstanceSourceMaterialOrganism', + 'SubstanceSourceMaterialOrganismAuthor', + 'SubstanceSourceMaterialOrganismHybrid', + 'SubstanceSourceMaterialOrganismOrganismGeneral', + 'SubstanceSourceMaterialPartDescription', + 'SubstanceSpecification', + 'SubstanceSpecificationCode', + 'SubstanceSpecificationMoiety', + 'SubstanceSpecificationName', + 'SubstanceSpecificationNameOfficial', + 'SubstanceSpecificationProperty', + 'SubstanceSpecificationRelationship', + 'SubstanceSpecificationStructure', + 'SubstanceSpecificationStructureIsotope', + 'SubstanceSpecificationStructureIsotopeMolecularWeight', + 'SubstanceSpecificationStructureRepresentation', + 'SupplyDelivery', + 'SupplyDeliverySuppliedItem', + 'SupplyRequest', + 'SupplyRequestParameter', + 'Task', + 'TaskInput', + 'TaskOutput', + 'TaskRestriction', + 'TerminologyCapabilities', + 'TerminologyCapabilitiesClosure', + 'TerminologyCapabilitiesCodeSystem', + 'TerminologyCapabilitiesCodeSystemVersion', + 'TerminologyCapabilitiesCodeSystemVersionFilter', + 'TerminologyCapabilitiesExpansion', + 'TerminologyCapabilitiesExpansionParameter', + 'TerminologyCapabilitiesImplementation', + 'TerminologyCapabilitiesSoftware', + 'TerminologyCapabilitiesTranslation', + 'TerminologyCapabilitiesValidateCode', + 'TestReport', + 'TestReportParticipant', + 'TestReportSetup', + 'TestReportSetupAction', + 'TestReportSetupActionAssert', + 'TestReportSetupActionOperation', + 'TestReportTeardown', + 'TestReportTeardownAction', + 'TestReportTest', + 'TestReportTestAction', + 'TestScript', + 'TestScriptDestination', + 'TestScriptFixture', + 'TestScriptMetadata', + 'TestScriptMetadataCapability', + 'TestScriptMetadataLink', + 'TestScriptOrigin', + 'TestScriptSetup', + 'TestScriptSetupAction', + 'TestScriptSetupActionAssert', + 'TestScriptSetupActionOperation', + 'TestScriptSetupActionOperationRequestHeader', + 'TestScriptTeardown', + 'TestScriptTeardownAction', + 'TestScriptTest', + 'TestScriptTestAction', + 'TestScriptVariable', + 'Timing', + 'TriggerDefinition', + 'UsageContext', + 'ValueSet', + 'ValueSetCompose', + 'ValueSetComposeInclude', + 'ValueSetComposeIncludeConcept', + 'ValueSetComposeIncludeConceptDesignation', + 'ValueSetComposeIncludeFilter', + 'ValueSetExpansion', + 'ValueSetExpansionContains', + 'ValueSetExpansionParameter', + 'VerificationResult', + 'VerificationResultAttestation', + 'VerificationResultPrimarySource', + 'VerificationResultValidator', + 'VisionPrescription', + 'VisionPrescriptionLensSpecification', + 'VisionPrescriptionLensSpecificationPrism', +] diff --git a/examples/python/generated/hl7_fhir_r4_core/account.py b/examples/python/generated/hl7_fhir_r4_core/account.py new file mode 100644 index 000000000..964d99346 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/account.py @@ -0,0 +1,55 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class AccountCoverage(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + coverage: Reference = Field(alias="coverage", serialization_alias="coverage") + priority: PositiveInt | None = Field(None, alias="priority", serialization_alias="priority") + +class AccountGuarantor(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + on_hold: bool | None = Field(None, alias="onHold", serialization_alias="onHold") + party: Reference = Field(alias="party", serialization_alias="party") + period: Period | None = Field(None, alias="period", serialization_alias="period") + + +class Account(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Account', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Account' + ) + coverage: PyList[AccountCoverage] | None = Field(None, alias="coverage", serialization_alias="coverage") + description: str | None = Field(None, alias="description", serialization_alias="description") + guarantor: PyList[AccountGuarantor] | None = Field(None, alias="guarantor", serialization_alias="guarantor") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + name: str | None = Field(None, alias="name", serialization_alias="name") + owner: Reference | None = Field(None, alias="owner", serialization_alias="owner") + part_of: Reference | None = Field(None, alias="partOf", serialization_alias="partOf") + service_period: Period | None = Field(None, alias="servicePeriod", serialization_alias="servicePeriod") + status: Literal["active", "inactive", "entered-in-error", "on-hold", "unknown"] = Field(alias="status", serialization_alias="status") + subject: PyList[Reference] | None = Field(None, alias="subject", serialization_alias="subject") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Account: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/activity_definition.py b/examples/python/generated/hl7_fhir_r4_core/activity_definition.py new file mode 100644 index 000000000..233311331 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/activity_definition.py @@ -0,0 +1,97 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Age, BackboneElement, CodeableConcept, ContactDetail, Dosage, Duration, Expression, Identifier, Period, \ + Quantity, Range, Reference, RelatedArtifact, Timing, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ActivityDefinitionDynamicValue(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + expression: Expression = Field(alias="expression", serialization_alias="expression") + path: str = Field(alias="path", serialization_alias="path") + +class ActivityDefinitionParticipant(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + role: CodeableConcept | None = Field(None, alias="role", serialization_alias="role") + type: Literal["patient", "practitioner", "related-person", "device"] = Field(alias="type", serialization_alias="type") + + +class ActivityDefinition(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ActivityDefinition', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ActivityDefinition' + ) + approval_date: str | None = Field(None, alias="approvalDate", serialization_alias="approvalDate") + author: PyList[ContactDetail] | None = Field(None, alias="author", serialization_alias="author") + body_site: PyList[CodeableConcept] | None = Field(None, alias="bodySite", serialization_alias="bodySite") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + do_not_perform: bool | None = Field(None, alias="doNotPerform", serialization_alias="doNotPerform") + dosage: PyList[Dosage] | None = Field(None, alias="dosage", serialization_alias="dosage") + dynamic_value: PyList[ActivityDefinitionDynamicValue] | None = Field(None, alias="dynamicValue", serialization_alias="dynamicValue") + editor: PyList[ContactDetail] | None = Field(None, alias="editor", serialization_alias="editor") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + endorser: PyList[ContactDetail] | None = Field(None, alias="endorser", serialization_alias="endorser") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + intent: Literal["proposal", "plan", "directive", "order", "original-order", "reflex-order", "filler-order", "instance-order", "option"] | None = Field(None, alias="intent", serialization_alias="intent") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + kind: Literal["Appointment", "AppointmentResponse", "CarePlan", "Claim", "CommunicationRequest", "Contract", "DeviceRequest", "EnrollmentRequest", "ImmunizationRecommendation", "MedicationRequest", "NutritionOrder", "ServiceRequest", "SupplyRequest", "Task", "VisionPrescription"] | None = Field(None, alias="kind", serialization_alias="kind") + last_review_date: str | None = Field(None, alias="lastReviewDate", serialization_alias="lastReviewDate") + library: PyList[str] | None = Field(None, alias="library", serialization_alias="library") + location: Reference | None = Field(None, alias="location", serialization_alias="location") + name: str | None = Field(None, alias="name", serialization_alias="name") + observation_requirement: PyList[Reference] | None = Field(None, alias="observationRequirement", serialization_alias="observationRequirement") + observation_result_requirement: PyList[Reference] | None = Field(None, alias="observationResultRequirement", serialization_alias="observationResultRequirement") + participant: PyList[ActivityDefinitionParticipant] | None = Field(None, alias="participant", serialization_alias="participant") + priority: Literal["routine", "urgent", "asap", "stat"] | None = Field(None, alias="priority", serialization_alias="priority") + product_codeable_concept: CodeableConcept | None = Field(None, alias="productCodeableConcept", serialization_alias="productCodeableConcept") + product_reference: Reference | None = Field(None, alias="productReference", serialization_alias="productReference") + profile: str | None = Field(None, alias="profile", serialization_alias="profile") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + related_artifact: PyList[RelatedArtifact] | None = Field(None, alias="relatedArtifact", serialization_alias="relatedArtifact") + reviewer: PyList[ContactDetail] | None = Field(None, alias="reviewer", serialization_alias="reviewer") + specimen_requirement: PyList[Reference] | None = Field(None, alias="specimenRequirement", serialization_alias="specimenRequirement") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + subject_codeable_concept: CodeableConcept | None = Field(None, alias="subjectCodeableConcept", serialization_alias="subjectCodeableConcept") + subject_reference: Reference | None = Field(None, alias="subjectReference", serialization_alias="subjectReference") + subtitle: str | None = Field(None, alias="subtitle", serialization_alias="subtitle") + timing_age: Age | None = Field(None, alias="timingAge", serialization_alias="timingAge") + timing_date_time: str | None = Field(None, alias="timingDateTime", serialization_alias="timingDateTime") + timing_duration: Duration | None = Field(None, alias="timingDuration", serialization_alias="timingDuration") + timing_period: Period | None = Field(None, alias="timingPeriod", serialization_alias="timingPeriod") + timing_range: Range | None = Field(None, alias="timingRange", serialization_alias="timingRange") + timing_timing: Timing | None = Field(None, alias="timingTiming", serialization_alias="timingTiming") + title: str | None = Field(None, alias="title", serialization_alias="title") + topic: PyList[CodeableConcept] | None = Field(None, alias="topic", serialization_alias="topic") + transform: str | None = Field(None, alias="transform", serialization_alias="transform") + url: str | None = Field(None, alias="url", serialization_alias="url") + usage: str | None = Field(None, alias="usage", serialization_alias="usage") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ActivityDefinition: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/adverse_event.py b/examples/python/generated/hl7_fhir_r4_core/adverse_event.py new file mode 100644 index 000000000..57c16d87e --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/adverse_event.py @@ -0,0 +1,63 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import BackboneElement, CodeableConcept, Identifier, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class AdverseEventSuspectEntity(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + causality: PyList[AdverseEventSuspectEntityCausality] | None = Field(None, alias="causality", serialization_alias="causality") + instance: Reference = Field(alias="instance", serialization_alias="instance") + +class AdverseEventSuspectEntityCausality(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + assessment: CodeableConcept | None = Field(None, alias="assessment", serialization_alias="assessment") + author: Reference | None = Field(None, alias="author", serialization_alias="author") + method: CodeableConcept | None = Field(None, alias="method", serialization_alias="method") + product_relatedness: str | None = Field(None, alias="productRelatedness", serialization_alias="productRelatedness") + + +class AdverseEvent(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='AdverseEvent', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='AdverseEvent' + ) + actuality: Literal["actual", "potential"] = Field(alias="actuality", serialization_alias="actuality") + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + contributor: PyList[Reference] | None = Field(None, alias="contributor", serialization_alias="contributor") + date: str | None = Field(None, alias="date", serialization_alias="date") + detected: str | None = Field(None, alias="detected", serialization_alias="detected") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + event: CodeableConcept | None = Field(None, alias="event", serialization_alias="event") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + location: Reference | None = Field(None, alias="location", serialization_alias="location") + outcome: CodeableConcept | None = Field(None, alias="outcome", serialization_alias="outcome") + recorded_date: str | None = Field(None, alias="recordedDate", serialization_alias="recordedDate") + recorder: Reference | None = Field(None, alias="recorder", serialization_alias="recorder") + reference_document: PyList[Reference] | None = Field(None, alias="referenceDocument", serialization_alias="referenceDocument") + resulting_condition: PyList[Reference] | None = Field(None, alias="resultingCondition", serialization_alias="resultingCondition") + seriousness: CodeableConcept | None = Field(None, alias="seriousness", serialization_alias="seriousness") + severity: CodeableConcept | None = Field(None, alias="severity", serialization_alias="severity") + study: PyList[Reference] | None = Field(None, alias="study", serialization_alias="study") + subject: Reference = Field(alias="subject", serialization_alias="subject") + subject_medical_history: PyList[Reference] | None = Field(None, alias="subjectMedicalHistory", serialization_alias="subjectMedicalHistory") + suspect_entity: PyList[AdverseEventSuspectEntity] | None = Field(None, alias="suspectEntity", serialization_alias="suspectEntity") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> AdverseEvent: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/allergy_intolerance.py b/examples/python/generated/hl7_fhir_r4_core/allergy_intolerance.py new file mode 100644 index 000000000..4feeb981a --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/allergy_intolerance.py @@ -0,0 +1,63 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Age, Annotation, BackboneElement, CodeableConcept, Identifier, Period, Range, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class AllergyIntoleranceReaction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + exposure_route: CodeableConcept | None = Field(None, alias="exposureRoute", serialization_alias="exposureRoute") + manifestation: PyList[CodeableConcept] = Field(alias="manifestation", serialization_alias="manifestation") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + onset: str | None = Field(None, alias="onset", serialization_alias="onset") + severity: Literal["mild", "moderate", "severe"] | None = Field(None, alias="severity", serialization_alias="severity") + substance: CodeableConcept | None = Field(None, alias="substance", serialization_alias="substance") + + +class AllergyIntolerance(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='AllergyIntolerance', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='AllergyIntolerance' + ) + asserter: Reference | None = Field(None, alias="asserter", serialization_alias="asserter") + category: PyList[Literal["food", "medication", "environment", "biologic"]] | None = Field(None, alias="category", serialization_alias="category") + clinical_status: CodeableConcept | None = Field(None, alias="clinicalStatus", serialization_alias="clinicalStatus") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + criticality: Literal["low", "high", "unable-to-assess"] | None = Field(None, alias="criticality", serialization_alias="criticality") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + last_occurrence: str | None = Field(None, alias="lastOccurrence", serialization_alias="lastOccurrence") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + onset_age: Age | None = Field(None, alias="onsetAge", serialization_alias="onsetAge") + onset_date_time: str | None = Field(None, alias="onsetDateTime", serialization_alias="onsetDateTime") + onset_period: Period | None = Field(None, alias="onsetPeriod", serialization_alias="onsetPeriod") + onset_range: Range | None = Field(None, alias="onsetRange", serialization_alias="onsetRange") + onset_string: str | None = Field(None, alias="onsetString", serialization_alias="onsetString") + patient: Reference = Field(alias="patient", serialization_alias="patient") + reaction: PyList[AllergyIntoleranceReaction] | None = Field(None, alias="reaction", serialization_alias="reaction") + recorded_date: str | None = Field(None, alias="recordedDate", serialization_alias="recordedDate") + recorder: Reference | None = Field(None, alias="recorder", serialization_alias="recorder") + type: Literal["allergy", "intolerance"] | None = Field(None, alias="type", serialization_alias="type") + verification_status: CodeableConcept | None = Field(None, alias="verificationStatus", serialization_alias="verificationStatus") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> AllergyIntolerance: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/appointment.py b/examples/python/generated/hl7_fhir_r4_core/appointment.py new file mode 100644 index 000000000..f1a469db9 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/appointment.py @@ -0,0 +1,63 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class AppointmentParticipant(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + actor: Reference | None = Field(None, alias="actor", serialization_alias="actor") + period: Period | None = Field(None, alias="period", serialization_alias="period") + required: Literal["required", "optional", "information-only"] | None = Field(None, alias="required", serialization_alias="required") + status: Literal["accepted", "declined", "tentative", "needs-action"] = Field(alias="status", serialization_alias="status") + type: PyList[CodeableConcept] | None = Field(None, alias="type", serialization_alias="type") + + +class Appointment(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Appointment', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Appointment' + ) + appointment_type: CodeableConcept | None = Field(None, alias="appointmentType", serialization_alias="appointmentType") + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + cancelation_reason: CodeableConcept | None = Field(None, alias="cancelationReason", serialization_alias="cancelationReason") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + created: str | None = Field(None, alias="created", serialization_alias="created") + description: str | None = Field(None, alias="description", serialization_alias="description") + end: str | None = Field(None, alias="end", serialization_alias="end") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + minutes_duration: PositiveInt | None = Field(None, alias="minutesDuration", serialization_alias="minutesDuration") + participant: PyList[AppointmentParticipant] = Field(alias="participant", serialization_alias="participant") + patient_instruction: str | None = Field(None, alias="patientInstruction", serialization_alias="patientInstruction") + priority: int | None = Field(None, alias="priority", serialization_alias="priority") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + requested_period: PyList[Period] | None = Field(None, alias="requestedPeriod", serialization_alias="requestedPeriod") + service_category: PyList[CodeableConcept] | None = Field(None, alias="serviceCategory", serialization_alias="serviceCategory") + service_type: PyList[CodeableConcept] | None = Field(None, alias="serviceType", serialization_alias="serviceType") + slot: PyList[Reference] | None = Field(None, alias="slot", serialization_alias="slot") + specialty: PyList[CodeableConcept] | None = Field(None, alias="specialty", serialization_alias="specialty") + start: str | None = Field(None, alias="start", serialization_alias="start") + status: Literal["proposed", "pending", "booked", "arrived", "fulfilled", "cancelled", "noshow", "entered-in-error", "checked-in", "waitlist"] = Field(alias="status", serialization_alias="status") + supporting_information: PyList[Reference] | None = Field(None, alias="supportingInformation", serialization_alias="supportingInformation") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Appointment: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/appointment_response.py b/examples/python/generated/hl7_fhir_r4_core/appointment_response.py new file mode 100644 index 000000000..99893da4d --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/appointment_response.py @@ -0,0 +1,38 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import CodeableConcept, Identifier, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class AppointmentResponse(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='AppointmentResponse', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='AppointmentResponse' + ) + actor: Reference | None = Field(None, alias="actor", serialization_alias="actor") + appointment: Reference = Field(alias="appointment", serialization_alias="appointment") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + end: str | None = Field(None, alias="end", serialization_alias="end") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + participant_status: Literal["accepted", "declined", "tentative", "needs-action"] = Field(alias="participantStatus", serialization_alias="participantStatus") + participant_type: PyList[CodeableConcept] | None = Field(None, alias="participantType", serialization_alias="participantType") + start: str | None = Field(None, alias="start", serialization_alias="start") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> AppointmentResponse: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/audit_event.py b/examples/python/generated/hl7_fhir_r4_core/audit_event.py new file mode 100644 index 000000000..7640ca012 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/audit_event.py @@ -0,0 +1,87 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Coding, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class AuditEventAgent(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + alt_id: str | None = Field(None, alias="altId", serialization_alias="altId") + location: Reference | None = Field(None, alias="location", serialization_alias="location") + media: Coding | None = Field(None, alias="media", serialization_alias="media") + name: str | None = Field(None, alias="name", serialization_alias="name") + network: AuditEventAgentNetwork | None = Field(None, alias="network", serialization_alias="network") + policy: PyList[str] | None = Field(None, alias="policy", serialization_alias="policy") + purpose_of_use: PyList[CodeableConcept] | None = Field(None, alias="purposeOfUse", serialization_alias="purposeOfUse") + requestor: bool = Field(alias="requestor", serialization_alias="requestor") + role: PyList[CodeableConcept] | None = Field(None, alias="role", serialization_alias="role") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + who: Reference | None = Field(None, alias="who", serialization_alias="who") + +class AuditEventAgentNetwork(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + address: str | None = Field(None, alias="address", serialization_alias="address") + type: Literal["1", "2", "3", "4", "5"] | None = Field(None, alias="type", serialization_alias="type") + +class AuditEventEntity(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + detail: PyList[AuditEventEntityDetail] | None = Field(None, alias="detail", serialization_alias="detail") + lifecycle: Coding | None = Field(None, alias="lifecycle", serialization_alias="lifecycle") + name: str | None = Field(None, alias="name", serialization_alias="name") + query: str | None = Field(None, alias="query", serialization_alias="query") + role: Coding | None = Field(None, alias="role", serialization_alias="role") + security_label: PyList[Coding] | None = Field(None, alias="securityLabel", serialization_alias="securityLabel") + type: Coding | None = Field(None, alias="type", serialization_alias="type") + what: Reference | None = Field(None, alias="what", serialization_alias="what") + +class AuditEventEntityDetail(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + type: str = Field(alias="type", serialization_alias="type") + value_base64binary: str | None = Field(None, alias="valueBase64Binary", serialization_alias="valueBase64Binary") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + +class AuditEventSource(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + observer: Reference = Field(alias="observer", serialization_alias="observer") + site: str | None = Field(None, alias="site", serialization_alias="site") + type: PyList[Coding] | None = Field(None, alias="type", serialization_alias="type") + + +class AuditEvent(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='AuditEvent', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='AuditEvent' + ) + action: Literal["C", "R", "U", "D", "E"] | None = Field(None, alias="action", serialization_alias="action") + agent: PyList[AuditEventAgent] = Field(alias="agent", serialization_alias="agent") + entity: PyList[AuditEventEntity] | None = Field(None, alias="entity", serialization_alias="entity") + outcome: Literal["0", "4", "8", "12"] | None = Field(None, alias="outcome", serialization_alias="outcome") + outcome_desc: str | None = Field(None, alias="outcomeDesc", serialization_alias="outcomeDesc") + period: Period | None = Field(None, alias="period", serialization_alias="period") + purpose_of_event: PyList[CodeableConcept] | None = Field(None, alias="purposeOfEvent", serialization_alias="purposeOfEvent") + recorded: str = Field(alias="recorded", serialization_alias="recorded") + source: AuditEventSource = Field(alias="source", serialization_alias="source") + subtype: PyList[Coding] | None = Field(None, alias="subtype", serialization_alias="subtype") + type: Coding = Field(alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> AuditEvent: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/base.py b/examples/python/generated/hl7_fhir_r4_core/base.py new file mode 100644 index 000000000..a28e1b585 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/base.py @@ -0,0 +1,770 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + + +class Element(BaseModel): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + extension: PyList[Extension] | None = Field(None, alias="extension", serialization_alias="extension") + id: str | None = Field(None, alias="id", serialization_alias="id") + + +class Address(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + city: str | None = Field(None, alias="city", serialization_alias="city") + country: str | None = Field(None, alias="country", serialization_alias="country") + district: str | None = Field(None, alias="district", serialization_alias="district") + line: PyList[str] | None = Field(None, alias="line", serialization_alias="line") + period: Period | None = Field(None, alias="period", serialization_alias="period") + postal_code: str | None = Field(None, alias="postalCode", serialization_alias="postalCode") + state: str | None = Field(None, alias="state", serialization_alias="state") + text: str | None = Field(None, alias="text", serialization_alias="text") + type: Literal["postal", "physical", "both"] | None = Field(None, alias="type", serialization_alias="type") + use: Literal["home", "work", "temp", "old", "billing"] | None = Field(None, alias="use", serialization_alias="use") + + +class Quantity(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: str | None = Field(None, alias="code", serialization_alias="code") + comparator: Literal["<", "<=", ">=", ">"] | None = Field(None, alias="comparator", serialization_alias="comparator") + system: str | None = Field(None, alias="system", serialization_alias="system") + unit: str | None = Field(None, alias="unit", serialization_alias="unit") + value: float | None = Field(None, alias="value", serialization_alias="value") + + +class Age(Quantity): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + pass + + +class Annotation(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + author_reference: Reference | None = Field(None, alias="authorReference", serialization_alias="authorReference") + author_string: str | None = Field(None, alias="authorString", serialization_alias="authorString") + text: str = Field(alias="text", serialization_alias="text") + time: str | None = Field(None, alias="time", serialization_alias="time") + + +class Attachment(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + content_type: str | None = Field(None, alias="contentType", serialization_alias="contentType") + creation: str | None = Field(None, alias="creation", serialization_alias="creation") + data: str | None = Field(None, alias="data", serialization_alias="data") + hash: str | None = Field(None, alias="hash", serialization_alias="hash") + language: str | None = Field(None, alias="language", serialization_alias="language") + size: int | None = Field(None, alias="size", serialization_alias="size") + title: str | None = Field(None, alias="title", serialization_alias="title") + url: str | None = Field(None, alias="url", serialization_alias="url") + + +class BackboneElement(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + modifier_extension: PyList[Extension] | None = Field(None, alias="modifierExtension", serialization_alias="modifierExtension") + + +class CodeableConcept(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + coding: PyList[Coding] | None = Field(None, alias="coding", serialization_alias="coding") + text: str | None = Field(None, alias="text", serialization_alias="text") + + +class Coding(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: str | None = Field(None, alias="code", serialization_alias="code") + display: str | None = Field(None, alias="display", serialization_alias="display") + system: str | None = Field(None, alias="system", serialization_alias="system") + user_selected: bool | None = Field(None, alias="userSelected", serialization_alias="userSelected") + version: str | None = Field(None, alias="version", serialization_alias="version") + + +class ContactDetail(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + name: str | None = Field(None, alias="name", serialization_alias="name") + telecom: PyList[ContactPoint] | None = Field(None, alias="telecom", serialization_alias="telecom") + + +class ContactPoint(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + period: Period | None = Field(None, alias="period", serialization_alias="period") + rank: PositiveInt | None = Field(None, alias="rank", serialization_alias="rank") + system: Literal["phone", "fax", "email", "pager", "url", "sms", "other"] | None = Field(None, alias="system", serialization_alias="system") + use: Literal["home", "work", "temp", "old", "mobile"] | None = Field(None, alias="use", serialization_alias="use") + value: str | None = Field(None, alias="value", serialization_alias="value") + + +class Contributor(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + name: str = Field(alias="name", serialization_alias="name") + type: Literal["author", "editor", "reviewer", "endorser"] = Field(alias="type", serialization_alias="type") + + +class Count(Quantity): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + pass + + +class DataRequirementCodeFilter(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: PyList[Coding] | None = Field(None, alias="code", serialization_alias="code") + path: str | None = Field(None, alias="path", serialization_alias="path") + search_param: str | None = Field(None, alias="searchParam", serialization_alias="searchParam") + value_set: str | None = Field(None, alias="valueSet", serialization_alias="valueSet") + +class DataRequirementDateFilter(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + path: str | None = Field(None, alias="path", serialization_alias="path") + search_param: str | None = Field(None, alias="searchParam", serialization_alias="searchParam") + value_date_time: str | None = Field(None, alias="valueDateTime", serialization_alias="valueDateTime") + value_duration: Duration | None = Field(None, alias="valueDuration", serialization_alias="valueDuration") + value_period: Period | None = Field(None, alias="valuePeriod", serialization_alias="valuePeriod") + +class DataRequirementSort(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + direction: Literal["ascending", "descending"] = Field(alias="direction", serialization_alias="direction") + path: str = Field(alias="path", serialization_alias="path") + + +class DataRequirement(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code_filter: PyList[Element] | None = Field(None, alias="codeFilter", serialization_alias="codeFilter") + date_filter: PyList[Element] | None = Field(None, alias="dateFilter", serialization_alias="dateFilter") + limit: PositiveInt | None = Field(None, alias="limit", serialization_alias="limit") + must_support: PyList[str] | None = Field(None, alias="mustSupport", serialization_alias="mustSupport") + profile: PyList[str] | None = Field(None, alias="profile", serialization_alias="profile") + sort: PyList[Element] | None = Field(None, alias="sort", serialization_alias="sort") + subject_codeable_concept: CodeableConcept | None = Field(None, alias="subjectCodeableConcept", serialization_alias="subjectCodeableConcept") + subject_reference: Reference | None = Field(None, alias="subjectReference", serialization_alias="subjectReference") + type: str = Field(alias="type", serialization_alias="type") + + +class Distance(Quantity): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + pass + + +class DosageDoseAndRate(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + dose_quantity: Quantity | None = Field(None, alias="doseQuantity", serialization_alias="doseQuantity") + dose_range: Range | None = Field(None, alias="doseRange", serialization_alias="doseRange") + rate_quantity: Quantity | None = Field(None, alias="rateQuantity", serialization_alias="rateQuantity") + rate_range: Range | None = Field(None, alias="rateRange", serialization_alias="rateRange") + rate_ratio: Ratio | None = Field(None, alias="rateRatio", serialization_alias="rateRatio") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + +class Dosage(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + additional_instruction: PyList[CodeableConcept] | None = Field(None, alias="additionalInstruction", serialization_alias="additionalInstruction") + as_needed_boolean: bool | None = Field(None, alias="asNeededBoolean", serialization_alias="asNeededBoolean") + as_needed_codeable_concept: CodeableConcept | None = Field(None, alias="asNeededCodeableConcept", serialization_alias="asNeededCodeableConcept") + dose_and_rate: PyList[Element] | None = Field(None, alias="doseAndRate", serialization_alias="doseAndRate") + max_dose_per_administration: Quantity | None = Field(None, alias="maxDosePerAdministration", serialization_alias="maxDosePerAdministration") + max_dose_per_lifetime: Quantity | None = Field(None, alias="maxDosePerLifetime", serialization_alias="maxDosePerLifetime") + max_dose_per_period: Ratio | None = Field(None, alias="maxDosePerPeriod", serialization_alias="maxDosePerPeriod") + method: CodeableConcept | None = Field(None, alias="method", serialization_alias="method") + patient_instruction: str | None = Field(None, alias="patientInstruction", serialization_alias="patientInstruction") + route: CodeableConcept | None = Field(None, alias="route", serialization_alias="route") + sequence: int | None = Field(None, alias="sequence", serialization_alias="sequence") + site: CodeableConcept | None = Field(None, alias="site", serialization_alias="site") + text: str | None = Field(None, alias="text", serialization_alias="text") + timing: Timing | None = Field(None, alias="timing", serialization_alias="timing") + + +class Duration(Quantity): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + pass + + +class ElementDefinitionBase(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + max: str = Field(alias="max", serialization_alias="max") + min: int = Field(alias="min", serialization_alias="min") + path: str = Field(alias="path", serialization_alias="path") + +class ElementDefinitionBinding(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + strength: Literal["required", "extensible", "preferred", "example"] = Field(alias="strength", serialization_alias="strength") + value_set: str | None = Field(None, alias="valueSet", serialization_alias="valueSet") + +class ElementDefinitionConstraint(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + expression: str | None = Field(None, alias="expression", serialization_alias="expression") + human: str = Field(alias="human", serialization_alias="human") + key: str = Field(alias="key", serialization_alias="key") + requirements: str | None = Field(None, alias="requirements", serialization_alias="requirements") + severity: Literal["error", "warning"] = Field(alias="severity", serialization_alias="severity") + source: str | None = Field(None, alias="source", serialization_alias="source") + xpath: str | None = Field(None, alias="xpath", serialization_alias="xpath") + +class ElementDefinitionExample(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + label: str = Field(alias="label", serialization_alias="label") + value_address: Address | None = Field(None, alias="valueAddress", serialization_alias="valueAddress") + value_age: Age | None = Field(None, alias="valueAge", serialization_alias="valueAge") + value_annotation: Annotation | None = Field(None, alias="valueAnnotation", serialization_alias="valueAnnotation") + value_attachment: Attachment | None = Field(None, alias="valueAttachment", serialization_alias="valueAttachment") + value_base64binary: str | None = Field(None, alias="valueBase64Binary", serialization_alias="valueBase64Binary") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_canonical: str | None = Field(None, alias="valueCanonical", serialization_alias="valueCanonical") + value_code: str | None = Field(None, alias="valueCode", serialization_alias="valueCode") + value_codeable_concept: CodeableConcept | None = Field(None, alias="valueCodeableConcept", serialization_alias="valueCodeableConcept") + value_coding: Coding | None = Field(None, alias="valueCoding", serialization_alias="valueCoding") + value_contact_detail: ContactDetail | None = Field(None, alias="valueContactDetail", serialization_alias="valueContactDetail") + value_contact_point: ContactPoint | None = Field(None, alias="valueContactPoint", serialization_alias="valueContactPoint") + value_contributor: Contributor | None = Field(None, alias="valueContributor", serialization_alias="valueContributor") + value_count: Count | None = Field(None, alias="valueCount", serialization_alias="valueCount") + value_data_requirement: DataRequirement | None = Field(None, alias="valueDataRequirement", serialization_alias="valueDataRequirement") + value_date: str | None = Field(None, alias="valueDate", serialization_alias="valueDate") + value_date_time: str | None = Field(None, alias="valueDateTime", serialization_alias="valueDateTime") + value_decimal: float | None = Field(None, alias="valueDecimal", serialization_alias="valueDecimal") + value_distance: Distance | None = Field(None, alias="valueDistance", serialization_alias="valueDistance") + value_dosage: Dosage | None = Field(None, alias="valueDosage", serialization_alias="valueDosage") + value_duration: Duration | None = Field(None, alias="valueDuration", serialization_alias="valueDuration") + value_expression: Expression | None = Field(None, alias="valueExpression", serialization_alias="valueExpression") + value_human_name: HumanName | None = Field(None, alias="valueHumanName", serialization_alias="valueHumanName") + value_id: str | None = Field(None, alias="valueId", serialization_alias="valueId") + value_identifier: Identifier | None = Field(None, alias="valueIdentifier", serialization_alias="valueIdentifier") + value_instant: str | None = Field(None, alias="valueInstant", serialization_alias="valueInstant") + value_integer: int | None = Field(None, alias="valueInteger", serialization_alias="valueInteger") + value_markdown: str | None = Field(None, alias="valueMarkdown", serialization_alias="valueMarkdown") + value_meta: Meta | None = Field(None, alias="valueMeta", serialization_alias="valueMeta") + value_money: Money | None = Field(None, alias="valueMoney", serialization_alias="valueMoney") + value_oid: str | None = Field(None, alias="valueOid", serialization_alias="valueOid") + value_parameter_definition: ParameterDefinition | None = Field(None, alias="valueParameterDefinition", serialization_alias="valueParameterDefinition") + value_period: Period | None = Field(None, alias="valuePeriod", serialization_alias="valuePeriod") + value_positive_int: PositiveInt | None = Field(None, alias="valuePositiveInt", serialization_alias="valuePositiveInt") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_range: Range | None = Field(None, alias="valueRange", serialization_alias="valueRange") + value_ratio: Ratio | None = Field(None, alias="valueRatio", serialization_alias="valueRatio") + value_reference: Reference | None = Field(None, alias="valueReference", serialization_alias="valueReference") + value_related_artifact: RelatedArtifact | None = Field(None, alias="valueRelatedArtifact", serialization_alias="valueRelatedArtifact") + value_sampled_data: SampledData | None = Field(None, alias="valueSampledData", serialization_alias="valueSampledData") + value_signature: Signature | None = Field(None, alias="valueSignature", serialization_alias="valueSignature") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + value_time: str | None = Field(None, alias="valueTime", serialization_alias="valueTime") + value_timing: Timing | None = Field(None, alias="valueTiming", serialization_alias="valueTiming") + value_trigger_definition: TriggerDefinition | None = Field(None, alias="valueTriggerDefinition", serialization_alias="valueTriggerDefinition") + value_unsigned_int: int | None = Field(None, alias="valueUnsignedInt", serialization_alias="valueUnsignedInt") + value_uri: str | None = Field(None, alias="valueUri", serialization_alias="valueUri") + value_url: str | None = Field(None, alias="valueUrl", serialization_alias="valueUrl") + value_usage_context: UsageContext | None = Field(None, alias="valueUsageContext", serialization_alias="valueUsageContext") + value_uuid: str | None = Field(None, alias="valueUuid", serialization_alias="valueUuid") + +class ElementDefinitionMapping(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + identity: str = Field(alias="identity", serialization_alias="identity") + language: str | None = Field(None, alias="language", serialization_alias="language") + map: str = Field(alias="map", serialization_alias="map") + +class ElementDefinitionSlicing(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + discriminator: PyList[Element] | None = Field(None, alias="discriminator", serialization_alias="discriminator") + ordered: bool | None = Field(None, alias="ordered", serialization_alias="ordered") + rules: Literal["closed", "open", "openAtEnd"] = Field(alias="rules", serialization_alias="rules") + +class ElementDefinitionSlicingDiscriminator(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + path: str = Field(alias="path", serialization_alias="path") + type: Literal["value", "exists", "pattern", "type", "profile"] = Field(alias="type", serialization_alias="type") + +class ElementDefinitionType(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + aggregation: PyList[Literal["contained", "referenced", "bundled"]] | None = Field(None, alias="aggregation", serialization_alias="aggregation") + code: str = Field(alias="code", serialization_alias="code") + profile: PyList[str] | None = Field(None, alias="profile", serialization_alias="profile") + target_profile: PyList[str] | None = Field(None, alias="targetProfile", serialization_alias="targetProfile") + versioning: Literal["either", "independent", "specific"] | None = Field(None, alias="versioning", serialization_alias="versioning") + + +class ElementDefinition(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + alias: PyList[str] | None = Field(None, alias="alias", serialization_alias="alias") + base: Element | None = Field(None, alias="base", serialization_alias="base") + binding: Element | None = Field(None, alias="binding", serialization_alias="binding") + code: PyList[Coding] | None = Field(None, alias="code", serialization_alias="code") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + condition: PyList[str] | None = Field(None, alias="condition", serialization_alias="condition") + constraint: PyList[Element] | None = Field(None, alias="constraint", serialization_alias="constraint") + content_reference: str | None = Field(None, alias="contentReference", serialization_alias="contentReference") + default_value_address: Address | None = Field(None, alias="defaultValueAddress", serialization_alias="defaultValueAddress") + default_value_age: Age | None = Field(None, alias="defaultValueAge", serialization_alias="defaultValueAge") + default_value_annotation: Annotation | None = Field(None, alias="defaultValueAnnotation", serialization_alias="defaultValueAnnotation") + default_value_attachment: Attachment | None = Field(None, alias="defaultValueAttachment", serialization_alias="defaultValueAttachment") + default_value_base64binary: str | None = Field(None, alias="defaultValueBase64Binary", serialization_alias="defaultValueBase64Binary") + default_value_boolean: bool | None = Field(None, alias="defaultValueBoolean", serialization_alias="defaultValueBoolean") + default_value_canonical: str | None = Field(None, alias="defaultValueCanonical", serialization_alias="defaultValueCanonical") + default_value_code: str | None = Field(None, alias="defaultValueCode", serialization_alias="defaultValueCode") + default_value_codeable_concept: CodeableConcept | None = Field(None, alias="defaultValueCodeableConcept", serialization_alias="defaultValueCodeableConcept") + default_value_coding: Coding | None = Field(None, alias="defaultValueCoding", serialization_alias="defaultValueCoding") + default_value_contact_detail: ContactDetail | None = Field(None, alias="defaultValueContactDetail", serialization_alias="defaultValueContactDetail") + default_value_contact_point: ContactPoint | None = Field(None, alias="defaultValueContactPoint", serialization_alias="defaultValueContactPoint") + default_value_contributor: Contributor | None = Field(None, alias="defaultValueContributor", serialization_alias="defaultValueContributor") + default_value_count: Count | None = Field(None, alias="defaultValueCount", serialization_alias="defaultValueCount") + default_value_data_requirement: DataRequirement | None = Field(None, alias="defaultValueDataRequirement", serialization_alias="defaultValueDataRequirement") + default_value_date: str | None = Field(None, alias="defaultValueDate", serialization_alias="defaultValueDate") + default_value_date_time: str | None = Field(None, alias="defaultValueDateTime", serialization_alias="defaultValueDateTime") + default_value_decimal: float | None = Field(None, alias="defaultValueDecimal", serialization_alias="defaultValueDecimal") + default_value_distance: Distance | None = Field(None, alias="defaultValueDistance", serialization_alias="defaultValueDistance") + default_value_dosage: Dosage | None = Field(None, alias="defaultValueDosage", serialization_alias="defaultValueDosage") + default_value_duration: Duration | None = Field(None, alias="defaultValueDuration", serialization_alias="defaultValueDuration") + default_value_expression: Expression | None = Field(None, alias="defaultValueExpression", serialization_alias="defaultValueExpression") + default_value_human_name: HumanName | None = Field(None, alias="defaultValueHumanName", serialization_alias="defaultValueHumanName") + default_value_id: str | None = Field(None, alias="defaultValueId", serialization_alias="defaultValueId") + default_value_identifier: Identifier | None = Field(None, alias="defaultValueIdentifier", serialization_alias="defaultValueIdentifier") + default_value_instant: str | None = Field(None, alias="defaultValueInstant", serialization_alias="defaultValueInstant") + default_value_integer: int | None = Field(None, alias="defaultValueInteger", serialization_alias="defaultValueInteger") + default_value_markdown: str | None = Field(None, alias="defaultValueMarkdown", serialization_alias="defaultValueMarkdown") + default_value_meta: Meta | None = Field(None, alias="defaultValueMeta", serialization_alias="defaultValueMeta") + default_value_money: Money | None = Field(None, alias="defaultValueMoney", serialization_alias="defaultValueMoney") + default_value_oid: str | None = Field(None, alias="defaultValueOid", serialization_alias="defaultValueOid") + default_value_parameter_definition: ParameterDefinition | None = Field(None, alias="defaultValueParameterDefinition", serialization_alias="defaultValueParameterDefinition") + default_value_period: Period | None = Field(None, alias="defaultValuePeriod", serialization_alias="defaultValuePeriod") + default_value_positive_int: PositiveInt | None = Field(None, alias="defaultValuePositiveInt", serialization_alias="defaultValuePositiveInt") + default_value_quantity: Quantity | None = Field(None, alias="defaultValueQuantity", serialization_alias="defaultValueQuantity") + default_value_range: Range | None = Field(None, alias="defaultValueRange", serialization_alias="defaultValueRange") + default_value_ratio: Ratio | None = Field(None, alias="defaultValueRatio", serialization_alias="defaultValueRatio") + default_value_reference: Reference | None = Field(None, alias="defaultValueReference", serialization_alias="defaultValueReference") + default_value_related_artifact: RelatedArtifact | None = Field(None, alias="defaultValueRelatedArtifact", serialization_alias="defaultValueRelatedArtifact") + default_value_sampled_data: SampledData | None = Field(None, alias="defaultValueSampledData", serialization_alias="defaultValueSampledData") + default_value_signature: Signature | None = Field(None, alias="defaultValueSignature", serialization_alias="defaultValueSignature") + default_value_string: str | None = Field(None, alias="defaultValueString", serialization_alias="defaultValueString") + default_value_time: str | None = Field(None, alias="defaultValueTime", serialization_alias="defaultValueTime") + default_value_timing: Timing | None = Field(None, alias="defaultValueTiming", serialization_alias="defaultValueTiming") + default_value_trigger_definition: TriggerDefinition | None = Field(None, alias="defaultValueTriggerDefinition", serialization_alias="defaultValueTriggerDefinition") + default_value_unsigned_int: int | None = Field(None, alias="defaultValueUnsignedInt", serialization_alias="defaultValueUnsignedInt") + default_value_uri: str | None = Field(None, alias="defaultValueUri", serialization_alias="defaultValueUri") + default_value_url: str | None = Field(None, alias="defaultValueUrl", serialization_alias="defaultValueUrl") + default_value_usage_context: UsageContext | None = Field(None, alias="defaultValueUsageContext", serialization_alias="defaultValueUsageContext") + default_value_uuid: str | None = Field(None, alias="defaultValueUuid", serialization_alias="defaultValueUuid") + definition: str | None = Field(None, alias="definition", serialization_alias="definition") + example: PyList[Element] | None = Field(None, alias="example", serialization_alias="example") + fixed_address: Address | None = Field(None, alias="fixedAddress", serialization_alias="fixedAddress") + fixed_age: Age | None = Field(None, alias="fixedAge", serialization_alias="fixedAge") + fixed_annotation: Annotation | None = Field(None, alias="fixedAnnotation", serialization_alias="fixedAnnotation") + fixed_attachment: Attachment | None = Field(None, alias="fixedAttachment", serialization_alias="fixedAttachment") + fixed_base64binary: str | None = Field(None, alias="fixedBase64Binary", serialization_alias="fixedBase64Binary") + fixed_boolean: bool | None = Field(None, alias="fixedBoolean", serialization_alias="fixedBoolean") + fixed_canonical: str | None = Field(None, alias="fixedCanonical", serialization_alias="fixedCanonical") + fixed_code: str | None = Field(None, alias="fixedCode", serialization_alias="fixedCode") + fixed_codeable_concept: CodeableConcept | None = Field(None, alias="fixedCodeableConcept", serialization_alias="fixedCodeableConcept") + fixed_coding: Coding | None = Field(None, alias="fixedCoding", serialization_alias="fixedCoding") + fixed_contact_detail: ContactDetail | None = Field(None, alias="fixedContactDetail", serialization_alias="fixedContactDetail") + fixed_contact_point: ContactPoint | None = Field(None, alias="fixedContactPoint", serialization_alias="fixedContactPoint") + fixed_contributor: Contributor | None = Field(None, alias="fixedContributor", serialization_alias="fixedContributor") + fixed_count: Count | None = Field(None, alias="fixedCount", serialization_alias="fixedCount") + fixed_data_requirement: DataRequirement | None = Field(None, alias="fixedDataRequirement", serialization_alias="fixedDataRequirement") + fixed_date: str | None = Field(None, alias="fixedDate", serialization_alias="fixedDate") + fixed_date_time: str | None = Field(None, alias="fixedDateTime", serialization_alias="fixedDateTime") + fixed_decimal: float | None = Field(None, alias="fixedDecimal", serialization_alias="fixedDecimal") + fixed_distance: Distance | None = Field(None, alias="fixedDistance", serialization_alias="fixedDistance") + fixed_dosage: Dosage | None = Field(None, alias="fixedDosage", serialization_alias="fixedDosage") + fixed_duration: Duration | None = Field(None, alias="fixedDuration", serialization_alias="fixedDuration") + fixed_expression: Expression | None = Field(None, alias="fixedExpression", serialization_alias="fixedExpression") + fixed_human_name: HumanName | None = Field(None, alias="fixedHumanName", serialization_alias="fixedHumanName") + fixed_id: str | None = Field(None, alias="fixedId", serialization_alias="fixedId") + fixed_identifier: Identifier | None = Field(None, alias="fixedIdentifier", serialization_alias="fixedIdentifier") + fixed_instant: str | None = Field(None, alias="fixedInstant", serialization_alias="fixedInstant") + fixed_integer: int | None = Field(None, alias="fixedInteger", serialization_alias="fixedInteger") + fixed_markdown: str | None = Field(None, alias="fixedMarkdown", serialization_alias="fixedMarkdown") + fixed_meta: Meta | None = Field(None, alias="fixedMeta", serialization_alias="fixedMeta") + fixed_money: Money | None = Field(None, alias="fixedMoney", serialization_alias="fixedMoney") + fixed_oid: str | None = Field(None, alias="fixedOid", serialization_alias="fixedOid") + fixed_parameter_definition: ParameterDefinition | None = Field(None, alias="fixedParameterDefinition", serialization_alias="fixedParameterDefinition") + fixed_period: Period | None = Field(None, alias="fixedPeriod", serialization_alias="fixedPeriod") + fixed_positive_int: PositiveInt | None = Field(None, alias="fixedPositiveInt", serialization_alias="fixedPositiveInt") + fixed_quantity: Quantity | None = Field(None, alias="fixedQuantity", serialization_alias="fixedQuantity") + fixed_range: Range | None = Field(None, alias="fixedRange", serialization_alias="fixedRange") + fixed_ratio: Ratio | None = Field(None, alias="fixedRatio", serialization_alias="fixedRatio") + fixed_reference: Reference | None = Field(None, alias="fixedReference", serialization_alias="fixedReference") + fixed_related_artifact: RelatedArtifact | None = Field(None, alias="fixedRelatedArtifact", serialization_alias="fixedRelatedArtifact") + fixed_sampled_data: SampledData | None = Field(None, alias="fixedSampledData", serialization_alias="fixedSampledData") + fixed_signature: Signature | None = Field(None, alias="fixedSignature", serialization_alias="fixedSignature") + fixed_string: str | None = Field(None, alias="fixedString", serialization_alias="fixedString") + fixed_time: str | None = Field(None, alias="fixedTime", serialization_alias="fixedTime") + fixed_timing: Timing | None = Field(None, alias="fixedTiming", serialization_alias="fixedTiming") + fixed_trigger_definition: TriggerDefinition | None = Field(None, alias="fixedTriggerDefinition", serialization_alias="fixedTriggerDefinition") + fixed_unsigned_int: int | None = Field(None, alias="fixedUnsignedInt", serialization_alias="fixedUnsignedInt") + fixed_uri: str | None = Field(None, alias="fixedUri", serialization_alias="fixedUri") + fixed_url: str | None = Field(None, alias="fixedUrl", serialization_alias="fixedUrl") + fixed_usage_context: UsageContext | None = Field(None, alias="fixedUsageContext", serialization_alias="fixedUsageContext") + fixed_uuid: str | None = Field(None, alias="fixedUuid", serialization_alias="fixedUuid") + is_modifier: bool | None = Field(None, alias="isModifier", serialization_alias="isModifier") + is_modifier_reason: str | None = Field(None, alias="isModifierReason", serialization_alias="isModifierReason") + is_summary: bool | None = Field(None, alias="isSummary", serialization_alias="isSummary") + label: str | None = Field(None, alias="label", serialization_alias="label") + mapping: PyList[Element] | None = Field(None, alias="mapping", serialization_alias="mapping") + max: str | None = Field(None, alias="max", serialization_alias="max") + max_length: int | None = Field(None, alias="maxLength", serialization_alias="maxLength") + max_value_date: str | None = Field(None, alias="maxValueDate", serialization_alias="maxValueDate") + max_value_date_time: str | None = Field(None, alias="maxValueDateTime", serialization_alias="maxValueDateTime") + max_value_decimal: float | None = Field(None, alias="maxValueDecimal", serialization_alias="maxValueDecimal") + max_value_instant: str | None = Field(None, alias="maxValueInstant", serialization_alias="maxValueInstant") + max_value_integer: int | None = Field(None, alias="maxValueInteger", serialization_alias="maxValueInteger") + max_value_positive_int: PositiveInt | None = Field(None, alias="maxValuePositiveInt", serialization_alias="maxValuePositiveInt") + max_value_quantity: Quantity | None = Field(None, alias="maxValueQuantity", serialization_alias="maxValueQuantity") + max_value_time: str | None = Field(None, alias="maxValueTime", serialization_alias="maxValueTime") + max_value_unsigned_int: int | None = Field(None, alias="maxValueUnsignedInt", serialization_alias="maxValueUnsignedInt") + meaning_when_missing: str | None = Field(None, alias="meaningWhenMissing", serialization_alias="meaningWhenMissing") + min: int | None = Field(None, alias="min", serialization_alias="min") + min_value_date: str | None = Field(None, alias="minValueDate", serialization_alias="minValueDate") + min_value_date_time: str | None = Field(None, alias="minValueDateTime", serialization_alias="minValueDateTime") + min_value_decimal: float | None = Field(None, alias="minValueDecimal", serialization_alias="minValueDecimal") + min_value_instant: str | None = Field(None, alias="minValueInstant", serialization_alias="minValueInstant") + min_value_integer: int | None = Field(None, alias="minValueInteger", serialization_alias="minValueInteger") + min_value_positive_int: PositiveInt | None = Field(None, alias="minValuePositiveInt", serialization_alias="minValuePositiveInt") + min_value_quantity: Quantity | None = Field(None, alias="minValueQuantity", serialization_alias="minValueQuantity") + min_value_time: str | None = Field(None, alias="minValueTime", serialization_alias="minValueTime") + min_value_unsigned_int: int | None = Field(None, alias="minValueUnsignedInt", serialization_alias="minValueUnsignedInt") + must_support: bool | None = Field(None, alias="mustSupport", serialization_alias="mustSupport") + order_meaning: str | None = Field(None, alias="orderMeaning", serialization_alias="orderMeaning") + path: str = Field(alias="path", serialization_alias="path") + pattern_address: Address | None = Field(None, alias="patternAddress", serialization_alias="patternAddress") + pattern_age: Age | None = Field(None, alias="patternAge", serialization_alias="patternAge") + pattern_annotation: Annotation | None = Field(None, alias="patternAnnotation", serialization_alias="patternAnnotation") + pattern_attachment: Attachment | None = Field(None, alias="patternAttachment", serialization_alias="patternAttachment") + pattern_base64binary: str | None = Field(None, alias="patternBase64Binary", serialization_alias="patternBase64Binary") + pattern_boolean: bool | None = Field(None, alias="patternBoolean", serialization_alias="patternBoolean") + pattern_canonical: str | None = Field(None, alias="patternCanonical", serialization_alias="patternCanonical") + pattern_code: str | None = Field(None, alias="patternCode", serialization_alias="patternCode") + pattern_codeable_concept: CodeableConcept | None = Field(None, alias="patternCodeableConcept", serialization_alias="patternCodeableConcept") + pattern_coding: Coding | None = Field(None, alias="patternCoding", serialization_alias="patternCoding") + pattern_contact_detail: ContactDetail | None = Field(None, alias="patternContactDetail", serialization_alias="patternContactDetail") + pattern_contact_point: ContactPoint | None = Field(None, alias="patternContactPoint", serialization_alias="patternContactPoint") + pattern_contributor: Contributor | None = Field(None, alias="patternContributor", serialization_alias="patternContributor") + pattern_count: Count | None = Field(None, alias="patternCount", serialization_alias="patternCount") + pattern_data_requirement: DataRequirement | None = Field(None, alias="patternDataRequirement", serialization_alias="patternDataRequirement") + pattern_date: str | None = Field(None, alias="patternDate", serialization_alias="patternDate") + pattern_date_time: str | None = Field(None, alias="patternDateTime", serialization_alias="patternDateTime") + pattern_decimal: float | None = Field(None, alias="patternDecimal", serialization_alias="patternDecimal") + pattern_distance: Distance | None = Field(None, alias="patternDistance", serialization_alias="patternDistance") + pattern_dosage: Dosage | None = Field(None, alias="patternDosage", serialization_alias="patternDosage") + pattern_duration: Duration | None = Field(None, alias="patternDuration", serialization_alias="patternDuration") + pattern_expression: Expression | None = Field(None, alias="patternExpression", serialization_alias="patternExpression") + pattern_human_name: HumanName | None = Field(None, alias="patternHumanName", serialization_alias="patternHumanName") + pattern_id: str | None = Field(None, alias="patternId", serialization_alias="patternId") + pattern_identifier: Identifier | None = Field(None, alias="patternIdentifier", serialization_alias="patternIdentifier") + pattern_instant: str | None = Field(None, alias="patternInstant", serialization_alias="patternInstant") + pattern_integer: int | None = Field(None, alias="patternInteger", serialization_alias="patternInteger") + pattern_markdown: str | None = Field(None, alias="patternMarkdown", serialization_alias="patternMarkdown") + pattern_meta: Meta | None = Field(None, alias="patternMeta", serialization_alias="patternMeta") + pattern_money: Money | None = Field(None, alias="patternMoney", serialization_alias="patternMoney") + pattern_oid: str | None = Field(None, alias="patternOid", serialization_alias="patternOid") + pattern_parameter_definition: ParameterDefinition | None = Field(None, alias="patternParameterDefinition", serialization_alias="patternParameterDefinition") + pattern_period: Period | None = Field(None, alias="patternPeriod", serialization_alias="patternPeriod") + pattern_positive_int: PositiveInt | None = Field(None, alias="patternPositiveInt", serialization_alias="patternPositiveInt") + pattern_quantity: Quantity | None = Field(None, alias="patternQuantity", serialization_alias="patternQuantity") + pattern_range: Range | None = Field(None, alias="patternRange", serialization_alias="patternRange") + pattern_ratio: Ratio | None = Field(None, alias="patternRatio", serialization_alias="patternRatio") + pattern_reference: Reference | None = Field(None, alias="patternReference", serialization_alias="patternReference") + pattern_related_artifact: RelatedArtifact | None = Field(None, alias="patternRelatedArtifact", serialization_alias="patternRelatedArtifact") + pattern_sampled_data: SampledData | None = Field(None, alias="patternSampledData", serialization_alias="patternSampledData") + pattern_signature: Signature | None = Field(None, alias="patternSignature", serialization_alias="patternSignature") + pattern_string: str | None = Field(None, alias="patternString", serialization_alias="patternString") + pattern_time: str | None = Field(None, alias="patternTime", serialization_alias="patternTime") + pattern_timing: Timing | None = Field(None, alias="patternTiming", serialization_alias="patternTiming") + pattern_trigger_definition: TriggerDefinition | None = Field(None, alias="patternTriggerDefinition", serialization_alias="patternTriggerDefinition") + pattern_unsigned_int: int | None = Field(None, alias="patternUnsignedInt", serialization_alias="patternUnsignedInt") + pattern_uri: str | None = Field(None, alias="patternUri", serialization_alias="patternUri") + pattern_url: str | None = Field(None, alias="patternUrl", serialization_alias="patternUrl") + pattern_usage_context: UsageContext | None = Field(None, alias="patternUsageContext", serialization_alias="patternUsageContext") + pattern_uuid: str | None = Field(None, alias="patternUuid", serialization_alias="patternUuid") + representation: PyList[Literal["xmlAttr", "xmlText", "typeAttr", "cdaText", "xhtml"]] | None = Field(None, alias="representation", serialization_alias="representation") + requirements: str | None = Field(None, alias="requirements", serialization_alias="requirements") + short: str | None = Field(None, alias="short", serialization_alias="short") + slice_is_constraining: bool | None = Field(None, alias="sliceIsConstraining", serialization_alias="sliceIsConstraining") + slice_name: str | None = Field(None, alias="sliceName", serialization_alias="sliceName") + slicing: Element | None = Field(None, alias="slicing", serialization_alias="slicing") + type: PyList[Element] | None = Field(None, alias="type", serialization_alias="type") + + +class Expression(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + expression: str | None = Field(None, alias="expression", serialization_alias="expression") + language: str = Field(alias="language", serialization_alias="language") + name: str | None = Field(None, alias="name", serialization_alias="name") + reference: str | None = Field(None, alias="reference", serialization_alias="reference") + + +class Extension(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + url: str = Field(alias="url", serialization_alias="url") + value_address: Address | None = Field(None, alias="valueAddress", serialization_alias="valueAddress") + value_age: Age | None = Field(None, alias="valueAge", serialization_alias="valueAge") + value_annotation: Annotation | None = Field(None, alias="valueAnnotation", serialization_alias="valueAnnotation") + value_attachment: Attachment | None = Field(None, alias="valueAttachment", serialization_alias="valueAttachment") + value_base64binary: str | None = Field(None, alias="valueBase64Binary", serialization_alias="valueBase64Binary") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_canonical: str | None = Field(None, alias="valueCanonical", serialization_alias="valueCanonical") + value_code: str | None = Field(None, alias="valueCode", serialization_alias="valueCode") + value_codeable_concept: CodeableConcept | None = Field(None, alias="valueCodeableConcept", serialization_alias="valueCodeableConcept") + value_coding: Coding | None = Field(None, alias="valueCoding", serialization_alias="valueCoding") + value_contact_detail: ContactDetail | None = Field(None, alias="valueContactDetail", serialization_alias="valueContactDetail") + value_contact_point: ContactPoint | None = Field(None, alias="valueContactPoint", serialization_alias="valueContactPoint") + value_contributor: Contributor | None = Field(None, alias="valueContributor", serialization_alias="valueContributor") + value_count: Count | None = Field(None, alias="valueCount", serialization_alias="valueCount") + value_data_requirement: DataRequirement | None = Field(None, alias="valueDataRequirement", serialization_alias="valueDataRequirement") + value_date: str | None = Field(None, alias="valueDate", serialization_alias="valueDate") + value_date_time: str | None = Field(None, alias="valueDateTime", serialization_alias="valueDateTime") + value_decimal: float | None = Field(None, alias="valueDecimal", serialization_alias="valueDecimal") + value_distance: Distance | None = Field(None, alias="valueDistance", serialization_alias="valueDistance") + value_dosage: Dosage | None = Field(None, alias="valueDosage", serialization_alias="valueDosage") + value_duration: Duration | None = Field(None, alias="valueDuration", serialization_alias="valueDuration") + value_expression: Expression | None = Field(None, alias="valueExpression", serialization_alias="valueExpression") + value_human_name: HumanName | None = Field(None, alias="valueHumanName", serialization_alias="valueHumanName") + value_id: str | None = Field(None, alias="valueId", serialization_alias="valueId") + value_identifier: Identifier | None = Field(None, alias="valueIdentifier", serialization_alias="valueIdentifier") + value_instant: str | None = Field(None, alias="valueInstant", serialization_alias="valueInstant") + value_integer: int | None = Field(None, alias="valueInteger", serialization_alias="valueInteger") + value_markdown: str | None = Field(None, alias="valueMarkdown", serialization_alias="valueMarkdown") + value_meta: Meta | None = Field(None, alias="valueMeta", serialization_alias="valueMeta") + value_money: Money | None = Field(None, alias="valueMoney", serialization_alias="valueMoney") + value_oid: str | None = Field(None, alias="valueOid", serialization_alias="valueOid") + value_parameter_definition: ParameterDefinition | None = Field(None, alias="valueParameterDefinition", serialization_alias="valueParameterDefinition") + value_period: Period | None = Field(None, alias="valuePeriod", serialization_alias="valuePeriod") + value_positive_int: PositiveInt | None = Field(None, alias="valuePositiveInt", serialization_alias="valuePositiveInt") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_range: Range | None = Field(None, alias="valueRange", serialization_alias="valueRange") + value_ratio: Ratio | None = Field(None, alias="valueRatio", serialization_alias="valueRatio") + value_reference: Reference | None = Field(None, alias="valueReference", serialization_alias="valueReference") + value_related_artifact: RelatedArtifact | None = Field(None, alias="valueRelatedArtifact", serialization_alias="valueRelatedArtifact") + value_sampled_data: SampledData | None = Field(None, alias="valueSampledData", serialization_alias="valueSampledData") + value_signature: Signature | None = Field(None, alias="valueSignature", serialization_alias="valueSignature") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + value_time: str | None = Field(None, alias="valueTime", serialization_alias="valueTime") + value_timing: Timing | None = Field(None, alias="valueTiming", serialization_alias="valueTiming") + value_trigger_definition: TriggerDefinition | None = Field(None, alias="valueTriggerDefinition", serialization_alias="valueTriggerDefinition") + value_unsigned_int: int | None = Field(None, alias="valueUnsignedInt", serialization_alias="valueUnsignedInt") + value_uri: str | None = Field(None, alias="valueUri", serialization_alias="valueUri") + value_url: str | None = Field(None, alias="valueUrl", serialization_alias="valueUrl") + value_usage_context: UsageContext | None = Field(None, alias="valueUsageContext", serialization_alias="valueUsageContext") + value_uuid: str | None = Field(None, alias="valueUuid", serialization_alias="valueUuid") + + +class HumanName(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + family: str | None = Field(None, alias="family", serialization_alias="family") + given: PyList[str] | None = Field(None, alias="given", serialization_alias="given") + period: Period | None = Field(None, alias="period", serialization_alias="period") + prefix: PyList[str] | None = Field(None, alias="prefix", serialization_alias="prefix") + suffix: PyList[str] | None = Field(None, alias="suffix", serialization_alias="suffix") + text: str | None = Field(None, alias="text", serialization_alias="text") + use: Literal["usual", "official", "temp", "nickname", "anonymous", "old", "maiden"] | None = Field(None, alias="use", serialization_alias="use") + + +class Identifier(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + assigner: Reference | None = Field(None, alias="assigner", serialization_alias="assigner") + period: Period | None = Field(None, alias="period", serialization_alias="period") + system: str | None = Field(None, alias="system", serialization_alias="system") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + use: Literal["usual", "official", "temp", "secondary", "old"] | None = Field(None, alias="use", serialization_alias="use") + value: str | None = Field(None, alias="value", serialization_alias="value") + + +class MarketingStatus(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + country: CodeableConcept = Field(alias="country", serialization_alias="country") + date_range: Period = Field(alias="dateRange", serialization_alias="dateRange") + jurisdiction: CodeableConcept | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + restore_date: str | None = Field(None, alias="restoreDate", serialization_alias="restoreDate") + status: CodeableConcept = Field(alias="status", serialization_alias="status") + + +class Meta(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + last_updated: str | None = Field(None, alias="lastUpdated", serialization_alias="lastUpdated") + profile: PyList[str] | None = Field(None, alias="profile", serialization_alias="profile") + security: PyList[Coding] | None = Field(None, alias="security", serialization_alias="security") + source: str | None = Field(None, alias="source", serialization_alias="source") + tag: PyList[Coding] | None = Field(None, alias="tag", serialization_alias="tag") + version_id: str | None = Field(None, alias="versionId", serialization_alias="versionId") + + +class Money(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + currency: str | None = Field(None, alias="currency", serialization_alias="currency") + value: float | None = Field(None, alias="value", serialization_alias="value") + + +class Narrative(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + div: str = Field(alias="div", serialization_alias="div") + status: Literal["generated", "extensions", "additional", "empty"] = Field(alias="status", serialization_alias="status") + + +class ParameterDefinition(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + documentation: str | None = Field(None, alias="documentation", serialization_alias="documentation") + max: str | None = Field(None, alias="max", serialization_alias="max") + min: int | None = Field(None, alias="min", serialization_alias="min") + name: str | None = Field(None, alias="name", serialization_alias="name") + profile: str | None = Field(None, alias="profile", serialization_alias="profile") + type: str = Field(alias="type", serialization_alias="type") + use: Literal["in", "out"] = Field(alias="use", serialization_alias="use") + + +class Period(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + end: str | None = Field(None, alias="end", serialization_alias="end") + start: str | None = Field(None, alias="start", serialization_alias="start") + + +class Population(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + age_codeable_concept: CodeableConcept | None = Field(None, alias="ageCodeableConcept", serialization_alias="ageCodeableConcept") + age_range: Range | None = Field(None, alias="ageRange", serialization_alias="ageRange") + gender: CodeableConcept | None = Field(None, alias="gender", serialization_alias="gender") + physiological_condition: CodeableConcept | None = Field(None, alias="physiologicalCondition", serialization_alias="physiologicalCondition") + race: CodeableConcept | None = Field(None, alias="race", serialization_alias="race") + + +class ProdCharacteristic(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + color: PyList[str] | None = Field(None, alias="color", serialization_alias="color") + depth: Quantity | None = Field(None, alias="depth", serialization_alias="depth") + external_diameter: Quantity | None = Field(None, alias="externalDiameter", serialization_alias="externalDiameter") + height: Quantity | None = Field(None, alias="height", serialization_alias="height") + image: PyList[Attachment] | None = Field(None, alias="image", serialization_alias="image") + imprint: PyList[str] | None = Field(None, alias="imprint", serialization_alias="imprint") + nominal_volume: Quantity | None = Field(None, alias="nominalVolume", serialization_alias="nominalVolume") + scoring: CodeableConcept | None = Field(None, alias="scoring", serialization_alias="scoring") + shape: str | None = Field(None, alias="shape", serialization_alias="shape") + weight: Quantity | None = Field(None, alias="weight", serialization_alias="weight") + width: Quantity | None = Field(None, alias="width", serialization_alias="width") + + +class ProductShelfLife(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + period: Quantity = Field(alias="period", serialization_alias="period") + special_precautions_for_storage: PyList[CodeableConcept] | None = Field(None, alias="specialPrecautionsForStorage", serialization_alias="specialPrecautionsForStorage") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + + +class Range(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + high: Quantity | None = Field(None, alias="high", serialization_alias="high") + low: Quantity | None = Field(None, alias="low", serialization_alias="low") + + +class Ratio(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + denominator: Quantity | None = Field(None, alias="denominator", serialization_alias="denominator") + numerator: Quantity | None = Field(None, alias="numerator", serialization_alias="numerator") + + +class Reference(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + display: str | None = Field(None, alias="display", serialization_alias="display") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + reference: str | None = Field(None, alias="reference", serialization_alias="reference") + type: str | None = Field(None, alias="type", serialization_alias="type") + + +class RelatedArtifact(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + citation: str | None = Field(None, alias="citation", serialization_alias="citation") + display: str | None = Field(None, alias="display", serialization_alias="display") + document: Attachment | None = Field(None, alias="document", serialization_alias="document") + label: str | None = Field(None, alias="label", serialization_alias="label") + resource: str | None = Field(None, alias="resource", serialization_alias="resource") + type: Literal["documentation", "justification", "citation", "predecessor", "successor", "derived-from", "depends-on", "composed-of"] = Field(alias="type", serialization_alias="type") + url: str | None = Field(None, alias="url", serialization_alias="url") + + +class SampledData(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + data: str | None = Field(None, alias="data", serialization_alias="data") + dimensions: PositiveInt = Field(alias="dimensions", serialization_alias="dimensions") + factor: float | None = Field(None, alias="factor", serialization_alias="factor") + lower_limit: float | None = Field(None, alias="lowerLimit", serialization_alias="lowerLimit") + origin: Quantity = Field(alias="origin", serialization_alias="origin") + period: float = Field(alias="period", serialization_alias="period") + upper_limit: float | None = Field(None, alias="upperLimit", serialization_alias="upperLimit") + + +class Signature(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + data: str | None = Field(None, alias="data", serialization_alias="data") + on_behalf_of: Reference | None = Field(None, alias="onBehalfOf", serialization_alias="onBehalfOf") + sig_format: str | None = Field(None, alias="sigFormat", serialization_alias="sigFormat") + target_format: str | None = Field(None, alias="targetFormat", serialization_alias="targetFormat") + type: PyList[Coding] = Field(alias="type", serialization_alias="type") + when: str = Field(alias="when", serialization_alias="when") + who: Reference = Field(alias="who", serialization_alias="who") + + +class SubstanceAmountReferenceRange(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + high_limit: Quantity | None = Field(None, alias="highLimit", serialization_alias="highLimit") + low_limit: Quantity | None = Field(None, alias="lowLimit", serialization_alias="lowLimit") + + +class SubstanceAmount(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount_quantity: Quantity | None = Field(None, alias="amountQuantity", serialization_alias="amountQuantity") + amount_range: Range | None = Field(None, alias="amountRange", serialization_alias="amountRange") + amount_string: str | None = Field(None, alias="amountString", serialization_alias="amountString") + amount_text: str | None = Field(None, alias="amountText", serialization_alias="amountText") + amount_type: CodeableConcept | None = Field(None, alias="amountType", serialization_alias="amountType") + reference_range: Element | None = Field(None, alias="referenceRange", serialization_alias="referenceRange") + + +class TimingRepeat(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + bounds_duration: Duration | None = Field(None, alias="boundsDuration", serialization_alias="boundsDuration") + bounds_period: Period | None = Field(None, alias="boundsPeriod", serialization_alias="boundsPeriod") + bounds_range: Range | None = Field(None, alias="boundsRange", serialization_alias="boundsRange") + count: PositiveInt | None = Field(None, alias="count", serialization_alias="count") + count_max: PositiveInt | None = Field(None, alias="countMax", serialization_alias="countMax") + day_of_week: PyList[Literal["mon", "tue", "wed", "thu", "fri", "sat", "sun"]] | None = Field(None, alias="dayOfWeek", serialization_alias="dayOfWeek") + duration: float | None = Field(None, alias="duration", serialization_alias="duration") + duration_max: float | None = Field(None, alias="durationMax", serialization_alias="durationMax") + duration_unit: Literal["s", "min", "h", "d", "wk", "mo", "a"] | None = Field(None, alias="durationUnit", serialization_alias="durationUnit") + frequency: PositiveInt | None = Field(None, alias="frequency", serialization_alias="frequency") + frequency_max: PositiveInt | None = Field(None, alias="frequencyMax", serialization_alias="frequencyMax") + offset: int | None = Field(None, alias="offset", serialization_alias="offset") + period: float | None = Field(None, alias="period", serialization_alias="period") + period_max: float | None = Field(None, alias="periodMax", serialization_alias="periodMax") + period_unit: Literal["s", "min", "h", "d", "wk", "mo", "a"] | None = Field(None, alias="periodUnit", serialization_alias="periodUnit") + time_of_day: PyList[str] | None = Field(None, alias="timeOfDay", serialization_alias="timeOfDay") + when: PyList[Literal["MORN", "MORN.early", "MORN.late", "NOON", "AFT", "AFT.early", "AFT.late", "EVE", "EVE.early", "EVE.late", "NIGHT", "PHS", "HS", "WAKE", "C", "CM", "CD", "CV", "AC", "ACM", "ACD", "ACV", "PC", "PCM", "PCD", "PCV"]] | None = Field(None, alias="when", serialization_alias="when") + + +class Timing(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + event: PyList[str] | None = Field(None, alias="event", serialization_alias="event") + repeat: Element | None = Field(None, alias="repeat", serialization_alias="repeat") + + +class TriggerDefinition(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + condition: Expression | None = Field(None, alias="condition", serialization_alias="condition") + data: PyList[DataRequirement] | None = Field(None, alias="data", serialization_alias="data") + name: str | None = Field(None, alias="name", serialization_alias="name") + timing_date: str | None = Field(None, alias="timingDate", serialization_alias="timingDate") + timing_date_time: str | None = Field(None, alias="timingDateTime", serialization_alias="timingDateTime") + timing_reference: Reference | None = Field(None, alias="timingReference", serialization_alias="timingReference") + timing_timing: Timing | None = Field(None, alias="timingTiming", serialization_alias="timingTiming") + type: Literal["named-event", "periodic", "data-changed", "data-added", "data-modified", "data-removed", "data-accessed", "data-access-ended"] = Field(alias="type", serialization_alias="type") + + +class UsageContext(Element): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: Coding = Field(alias="code", serialization_alias="code") + value_codeable_concept: CodeableConcept | None = Field(None, alias="valueCodeableConcept", serialization_alias="valueCodeableConcept") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_range: Range | None = Field(None, alias="valueRange", serialization_alias="valueRange") + value_reference: Reference | None = Field(None, alias="valueReference", serialization_alias="valueReference") + + diff --git a/examples/python/generated/hl7_fhir_r4_core/basic.py b/examples/python/generated/hl7_fhir_r4_core/basic.py new file mode 100644 index 000000000..411eb1440 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/basic.py @@ -0,0 +1,35 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import CodeableConcept, Identifier, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class Basic(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Basic', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Basic' + ) + author: Reference | None = Field(None, alias="author", serialization_alias="author") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + created: str | None = Field(None, alias="created", serialization_alias="created") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Basic: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/binary.py b/examples/python/generated/hl7_fhir_r4_core/binary.py new file mode 100644 index 000000000..c2dba7355 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/binary.py @@ -0,0 +1,33 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import Reference +from generated.hl7_fhir_r4_core.resource import Resource +from generated.hl7_fhir_r4_core.resource_families import ResourceFamily + + +class Binary(Resource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Binary', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Binary' + ) + content_type: str = Field(alias="contentType", serialization_alias="contentType") + data: str | None = Field(None, alias="data", serialization_alias="data") + security_context: Reference | None = Field(None, alias="securityContext", serialization_alias="securityContext") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Binary: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/biologically_derived_product.py b/examples/python/generated/hl7_fhir_r4_core/biologically_derived_product.py new file mode 100644 index 000000000..b9e36988f --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/biologically_derived_product.py @@ -0,0 +1,72 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class BiologicallyDerivedProductCollection(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + collected_date_time: str | None = Field(None, alias="collectedDateTime", serialization_alias="collectedDateTime") + collected_period: Period | None = Field(None, alias="collectedPeriod", serialization_alias="collectedPeriod") + collector: Reference | None = Field(None, alias="collector", serialization_alias="collector") + source: Reference | None = Field(None, alias="source", serialization_alias="source") + +class BiologicallyDerivedProductManipulation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + time_date_time: str | None = Field(None, alias="timeDateTime", serialization_alias="timeDateTime") + time_period: Period | None = Field(None, alias="timePeriod", serialization_alias="timePeriod") + +class BiologicallyDerivedProductProcessing(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + additive: Reference | None = Field(None, alias="additive", serialization_alias="additive") + description: str | None = Field(None, alias="description", serialization_alias="description") + procedure: CodeableConcept | None = Field(None, alias="procedure", serialization_alias="procedure") + time_date_time: str | None = Field(None, alias="timeDateTime", serialization_alias="timeDateTime") + time_period: Period | None = Field(None, alias="timePeriod", serialization_alias="timePeriod") + +class BiologicallyDerivedProductStorage(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + duration: Period | None = Field(None, alias="duration", serialization_alias="duration") + scale: Literal["farenheit", "celsius", "kelvin"] | None = Field(None, alias="scale", serialization_alias="scale") + temperature: float | None = Field(None, alias="temperature", serialization_alias="temperature") + + +class BiologicallyDerivedProduct(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='BiologicallyDerivedProduct', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='BiologicallyDerivedProduct' + ) + collection: BiologicallyDerivedProductCollection | None = Field(None, alias="collection", serialization_alias="collection") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + manipulation: BiologicallyDerivedProductManipulation | None = Field(None, alias="manipulation", serialization_alias="manipulation") + parent: PyList[Reference] | None = Field(None, alias="parent", serialization_alias="parent") + processing: PyList[BiologicallyDerivedProductProcessing] | None = Field(None, alias="processing", serialization_alias="processing") + product_category: Literal["organ", "tissue", "fluid", "cells", "biologicalAgent"] | None = Field(None, alias="productCategory", serialization_alias="productCategory") + product_code: CodeableConcept | None = Field(None, alias="productCode", serialization_alias="productCode") + quantity: int | None = Field(None, alias="quantity", serialization_alias="quantity") + request: PyList[Reference] | None = Field(None, alias="request", serialization_alias="request") + status: Literal["available", "unavailable"] | None = Field(None, alias="status", serialization_alias="status") + storage: PyList[BiologicallyDerivedProductStorage] | None = Field(None, alias="storage", serialization_alias="storage") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> BiologicallyDerivedProduct: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/body_structure.py b/examples/python/generated/hl7_fhir_r4_core/body_structure.py new file mode 100644 index 000000000..e9e19cae1 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/body_structure.py @@ -0,0 +1,38 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import Attachment, CodeableConcept, Identifier, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class BodyStructure(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='BodyStructure', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='BodyStructure' + ) + active: bool | None = Field(None, alias="active", serialization_alias="active") + description: str | None = Field(None, alias="description", serialization_alias="description") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + image: PyList[Attachment] | None = Field(None, alias="image", serialization_alias="image") + location: CodeableConcept | None = Field(None, alias="location", serialization_alias="location") + location_qualifier: PyList[CodeableConcept] | None = Field(None, alias="locationQualifier", serialization_alias="locationQualifier") + morphology: CodeableConcept | None = Field(None, alias="morphology", serialization_alias="morphology") + patient: Reference = Field(alias="patient", serialization_alias="patient") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> BodyStructure: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/bundle.py b/examples/python/generated/hl7_fhir_r4_core/bundle.py new file mode 100644 index 000000000..c593cc8d5 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/bundle.py @@ -0,0 +1,74 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import BackboneElement, Identifier, Signature +from generated.hl7_fhir_r4_core.resource import Resource +from generated.hl7_fhir_r4_core.resource_families import ResourceFamily + + +class BundleEntry(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + full_url: str | None = Field(None, alias="fullUrl", serialization_alias="fullUrl") + link: PyList[BundleLink] | None = Field(None, alias="link", serialization_alias="link") + request: BundleEntryRequest | None = Field(None, alias="request", serialization_alias="request") + resource: ResourceFamily | None = Field(None, alias="resource", serialization_alias="resource") + response: BundleEntryResponse | None = Field(None, alias="response", serialization_alias="response") + search: BundleEntrySearch | None = Field(None, alias="search", serialization_alias="search") + +class BundleEntryRequest(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + if_match: str | None = Field(None, alias="ifMatch", serialization_alias="ifMatch") + if_modified_since: str | None = Field(None, alias="ifModifiedSince", serialization_alias="ifModifiedSince") + if_none_exist: str | None = Field(None, alias="ifNoneExist", serialization_alias="ifNoneExist") + if_none_match: str | None = Field(None, alias="ifNoneMatch", serialization_alias="ifNoneMatch") + method: Literal["GET", "HEAD", "POST", "PUT", "DELETE", "PATCH"] = Field(alias="method", serialization_alias="method") + url: str = Field(alias="url", serialization_alias="url") + +class BundleEntryResponse(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + etag: str | None = Field(None, alias="etag", serialization_alias="etag") + last_modified: str | None = Field(None, alias="lastModified", serialization_alias="lastModified") + location: str | None = Field(None, alias="location", serialization_alias="location") + outcome: ResourceFamily | None = Field(None, alias="outcome", serialization_alias="outcome") + status: str = Field(alias="status", serialization_alias="status") + +class BundleEntrySearch(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + mode: Literal["match", "include", "outcome"] | None = Field(None, alias="mode", serialization_alias="mode") + score: float | None = Field(None, alias="score", serialization_alias="score") + +class BundleLink(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + relation: str = Field(alias="relation", serialization_alias="relation") + url: str = Field(alias="url", serialization_alias="url") + + +class Bundle(Resource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Bundle', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Bundle' + ) + entry: PyList[BundleEntry] | None = Field(None, alias="entry", serialization_alias="entry") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + link: PyList[BundleLink] | None = Field(None, alias="link", serialization_alias="link") + signature: Signature | None = Field(None, alias="signature", serialization_alias="signature") + timestamp: str | None = Field(None, alias="timestamp", serialization_alias="timestamp") + total: int | None = Field(None, alias="total", serialization_alias="total") + type: Literal["document", "message", "transaction", "transaction-response", "batch", "batch-response", "history", "searchset", "collection"] = Field(alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Bundle: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/capability_statement.py b/examples/python/generated/hl7_fhir_r4_core/capability_statement.py new file mode 100644 index 000000000..33f6e7881 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/capability_statement.py @@ -0,0 +1,154 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Coding, ContactDetail, Reference, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class CapabilityStatementDocument(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + documentation: str | None = Field(None, alias="documentation", serialization_alias="documentation") + mode: Literal["producer", "consumer"] = Field(alias="mode", serialization_alias="mode") + profile: str = Field(alias="profile", serialization_alias="profile") + +class CapabilityStatementImplementation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + custodian: Reference | None = Field(None, alias="custodian", serialization_alias="custodian") + description: str = Field(alias="description", serialization_alias="description") + url: str | None = Field(None, alias="url", serialization_alias="url") + +class CapabilityStatementMessaging(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + documentation: str | None = Field(None, alias="documentation", serialization_alias="documentation") + endpoint: PyList[CapabilityStatementMessagingEndpoint] | None = Field(None, alias="endpoint", serialization_alias="endpoint") + reliable_cache: int | None = Field(None, alias="reliableCache", serialization_alias="reliableCache") + supported_message: PyList[CapabilityStatementMessagingSupportedMessage] | None = Field(None, alias="supportedMessage", serialization_alias="supportedMessage") + +class CapabilityStatementMessagingEndpoint(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + address: str = Field(alias="address", serialization_alias="address") + protocol: Coding = Field(alias="protocol", serialization_alias="protocol") + +class CapabilityStatementMessagingSupportedMessage(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + definition: str = Field(alias="definition", serialization_alias="definition") + mode: Literal["sender", "receiver"] = Field(alias="mode", serialization_alias="mode") + +class CapabilityStatementRest(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + compartment: PyList[str] | None = Field(None, alias="compartment", serialization_alias="compartment") + documentation: str | None = Field(None, alias="documentation", serialization_alias="documentation") + interaction: PyList[CapabilityStatementRestInteraction] | None = Field(None, alias="interaction", serialization_alias="interaction") + mode: Literal["client", "server"] = Field(alias="mode", serialization_alias="mode") + operation: PyList[CapabilityStatementRestResourceOperation] | None = Field(None, alias="operation", serialization_alias="operation") + resource: PyList[CapabilityStatementRestResource] | None = Field(None, alias="resource", serialization_alias="resource") + search_param: PyList[CapabilityStatementRestResourceSearchParam] | None = Field(None, alias="searchParam", serialization_alias="searchParam") + security: CapabilityStatementRestSecurity | None = Field(None, alias="security", serialization_alias="security") + +class CapabilityStatementRestInteraction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: Literal["transaction", "batch", "search-system", "history-system"] = Field(alias="code", serialization_alias="code") + documentation: str | None = Field(None, alias="documentation", serialization_alias="documentation") + +class CapabilityStatementRestResource(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + conditional_create: bool | None = Field(None, alias="conditionalCreate", serialization_alias="conditionalCreate") + conditional_delete: Literal["not-supported", "single", "multiple"] | None = Field(None, alias="conditionalDelete", serialization_alias="conditionalDelete") + conditional_read: Literal["not-supported", "modified-since", "not-match", "full-support"] | None = Field(None, alias="conditionalRead", serialization_alias="conditionalRead") + conditional_update: bool | None = Field(None, alias="conditionalUpdate", serialization_alias="conditionalUpdate") + documentation: str | None = Field(None, alias="documentation", serialization_alias="documentation") + interaction: PyList[CapabilityStatementRestResourceInteraction] | None = Field(None, alias="interaction", serialization_alias="interaction") + operation: PyList[CapabilityStatementRestResourceOperation] | None = Field(None, alias="operation", serialization_alias="operation") + profile: str | None = Field(None, alias="profile", serialization_alias="profile") + read_history: bool | None = Field(None, alias="readHistory", serialization_alias="readHistory") + reference_policy: PyList[Literal["literal", "logical", "resolves", "enforced", "local"]] | None = Field(None, alias="referencePolicy", serialization_alias="referencePolicy") + search_include: PyList[str] | None = Field(None, alias="searchInclude", serialization_alias="searchInclude") + search_param: PyList[CapabilityStatementRestResourceSearchParam] | None = Field(None, alias="searchParam", serialization_alias="searchParam") + search_rev_include: PyList[str] | None = Field(None, alias="searchRevInclude", serialization_alias="searchRevInclude") + supported_profile: PyList[str] | None = Field(None, alias="supportedProfile", serialization_alias="supportedProfile") + type: str = Field(alias="type", serialization_alias="type") + update_create: bool | None = Field(None, alias="updateCreate", serialization_alias="updateCreate") + versioning: Literal["no-version", "versioned", "versioned-update"] | None = Field(None, alias="versioning", serialization_alias="versioning") + +class CapabilityStatementRestResourceInteraction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: Literal["read", "vread", "update", "patch", "delete", "history-instance", "history-type", "create", "search-type"] = Field(alias="code", serialization_alias="code") + documentation: str | None = Field(None, alias="documentation", serialization_alias="documentation") + +class CapabilityStatementRestResourceOperation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + definition: str = Field(alias="definition", serialization_alias="definition") + documentation: str | None = Field(None, alias="documentation", serialization_alias="documentation") + name: str = Field(alias="name", serialization_alias="name") + +class CapabilityStatementRestResourceSearchParam(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + definition: str | None = Field(None, alias="definition", serialization_alias="definition") + documentation: str | None = Field(None, alias="documentation", serialization_alias="documentation") + name: str = Field(alias="name", serialization_alias="name") + type: Literal["number", "date", "string", "token", "reference", "composite", "quantity", "uri", "special"] = Field(alias="type", serialization_alias="type") + +class CapabilityStatementRestSecurity(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + cors: bool | None = Field(None, alias="cors", serialization_alias="cors") + description: str | None = Field(None, alias="description", serialization_alias="description") + service: PyList[CodeableConcept] | None = Field(None, alias="service", serialization_alias="service") + +class CapabilityStatementSoftware(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + name: str = Field(alias="name", serialization_alias="name") + release_date: str | None = Field(None, alias="releaseDate", serialization_alias="releaseDate") + version: str | None = Field(None, alias="version", serialization_alias="version") + + +class CapabilityStatement(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='CapabilityStatement', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='CapabilityStatement' + ) + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str = Field(alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + document: PyList[CapabilityStatementDocument] | None = Field(None, alias="document", serialization_alias="document") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + fhir_version: Literal["0.01", "0.05", "0.06", "0.11", "0.0.80", "0.0.81", "0.0.82", "0.4.0", "0.5.0", "1.0.0", "1.0.1", "1.0.2", "1.1.0", "1.4.0", "1.6.0", "1.8.0", "3.0.0", "3.0.1", "3.3.0", "3.5.0", "4.0.0", "4.0.1"] = Field(alias="fhirVersion", serialization_alias="fhirVersion") + format: PyList[str] = Field(alias="format", serialization_alias="format") + implementation: CapabilityStatementImplementation | None = Field(None, alias="implementation", serialization_alias="implementation") + implementation_guide: PyList[str] | None = Field(None, alias="implementationGuide", serialization_alias="implementationGuide") + imports: PyList[str] | None = Field(None, alias="imports", serialization_alias="imports") + instantiates: PyList[str] | None = Field(None, alias="instantiates", serialization_alias="instantiates") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + kind: Literal["instance", "capability", "requirements"] = Field(alias="kind", serialization_alias="kind") + messaging: PyList[CapabilityStatementMessaging] | None = Field(None, alias="messaging", serialization_alias="messaging") + name: str | None = Field(None, alias="name", serialization_alias="name") + patch_format: PyList[str] | None = Field(None, alias="patchFormat", serialization_alias="patchFormat") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + rest: PyList[CapabilityStatementRest] | None = Field(None, alias="rest", serialization_alias="rest") + software: CapabilityStatementSoftware | None = Field(None, alias="software", serialization_alias="software") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + title: str | None = Field(None, alias="title", serialization_alias="title") + url: str | None = Field(None, alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> CapabilityStatement: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/care_plan.py b/examples/python/generated/hl7_fhir_r4_core/care_plan.py new file mode 100644 index 000000000..c69dcdf52 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/care_plan.py @@ -0,0 +1,87 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Identifier, Period, Quantity, Reference, Timing +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class CarePlanActivity(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + detail: CarePlanActivityDetail | None = Field(None, alias="detail", serialization_alias="detail") + outcome_codeable_concept: PyList[CodeableConcept] | None = Field(None, alias="outcomeCodeableConcept", serialization_alias="outcomeCodeableConcept") + outcome_reference: PyList[Reference] | None = Field(None, alias="outcomeReference", serialization_alias="outcomeReference") + progress: PyList[Annotation] | None = Field(None, alias="progress", serialization_alias="progress") + reference: Reference | None = Field(None, alias="reference", serialization_alias="reference") + +class CarePlanActivityDetail(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + daily_amount: Quantity | None = Field(None, alias="dailyAmount", serialization_alias="dailyAmount") + description: str | None = Field(None, alias="description", serialization_alias="description") + do_not_perform: bool | None = Field(None, alias="doNotPerform", serialization_alias="doNotPerform") + goal: PyList[Reference] | None = Field(None, alias="goal", serialization_alias="goal") + instantiates_canonical: PyList[str] | None = Field(None, alias="instantiatesCanonical", serialization_alias="instantiatesCanonical") + instantiates_uri: PyList[str] | None = Field(None, alias="instantiatesUri", serialization_alias="instantiatesUri") + kind: Literal["Appointment", "CommunicationRequest", "DeviceRequest", "MedicationRequest", "NutritionOrder", "Task", "ServiceRequest", "VisionPrescription"] | None = Field(None, alias="kind", serialization_alias="kind") + location: Reference | None = Field(None, alias="location", serialization_alias="location") + performer: PyList[Reference] | None = Field(None, alias="performer", serialization_alias="performer") + product_codeable_concept: CodeableConcept | None = Field(None, alias="productCodeableConcept", serialization_alias="productCodeableConcept") + product_reference: Reference | None = Field(None, alias="productReference", serialization_alias="productReference") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + scheduled_period: Period | None = Field(None, alias="scheduledPeriod", serialization_alias="scheduledPeriod") + scheduled_string: str | None = Field(None, alias="scheduledString", serialization_alias="scheduledString") + scheduled_timing: Timing | None = Field(None, alias="scheduledTiming", serialization_alias="scheduledTiming") + status: Literal["not-started", "scheduled", "in-progress", "on-hold", "completed", "cancelled", "stopped", "unknown", "entered-in-error"] = Field(alias="status", serialization_alias="status") + status_reason: CodeableConcept | None = Field(None, alias="statusReason", serialization_alias="statusReason") + + +class CarePlan(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='CarePlan', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='CarePlan' + ) + activity: PyList[CarePlanActivity] | None = Field(None, alias="activity", serialization_alias="activity") + addresses: PyList[Reference] | None = Field(None, alias="addresses", serialization_alias="addresses") + author: Reference | None = Field(None, alias="author", serialization_alias="author") + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + care_team: PyList[Reference] | None = Field(None, alias="careTeam", serialization_alias="careTeam") + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + contributor: PyList[Reference] | None = Field(None, alias="contributor", serialization_alias="contributor") + created: str | None = Field(None, alias="created", serialization_alias="created") + description: str | None = Field(None, alias="description", serialization_alias="description") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + goal: PyList[Reference] | None = Field(None, alias="goal", serialization_alias="goal") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + instantiates_canonical: PyList[str] | None = Field(None, alias="instantiatesCanonical", serialization_alias="instantiatesCanonical") + instantiates_uri: PyList[str] | None = Field(None, alias="instantiatesUri", serialization_alias="instantiatesUri") + intent: Literal["proposal", "plan", "order", "option"] = Field(alias="intent", serialization_alias="intent") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + part_of: PyList[Reference] | None = Field(None, alias="partOf", serialization_alias="partOf") + period: Period | None = Field(None, alias="period", serialization_alias="period") + replaces: PyList[Reference] | None = Field(None, alias="replaces", serialization_alias="replaces") + status: Literal["draft", "active", "on-hold", "revoked", "completed", "entered-in-error", "unknown"] = Field(alias="status", serialization_alias="status") + subject: Reference = Field(alias="subject", serialization_alias="subject") + supporting_info: PyList[Reference] | None = Field(None, alias="supportingInfo", serialization_alias="supportingInfo") + title: str | None = Field(None, alias="title", serialization_alias="title") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> CarePlan: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/care_team.py b/examples/python/generated/hl7_fhir_r4_core/care_team.py new file mode 100644 index 000000000..99ef301a0 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/care_team.py @@ -0,0 +1,53 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, ContactPoint, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class CareTeamParticipant(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + member: Reference | None = Field(None, alias="member", serialization_alias="member") + on_behalf_of: Reference | None = Field(None, alias="onBehalfOf", serialization_alias="onBehalfOf") + period: Period | None = Field(None, alias="period", serialization_alias="period") + role: PyList[CodeableConcept] | None = Field(None, alias="role", serialization_alias="role") + + +class CareTeam(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='CareTeam', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='CareTeam' + ) + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + managing_organization: PyList[Reference] | None = Field(None, alias="managingOrganization", serialization_alias="managingOrganization") + name: str | None = Field(None, alias="name", serialization_alias="name") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + participant: PyList[CareTeamParticipant] | None = Field(None, alias="participant", serialization_alias="participant") + period: Period | None = Field(None, alias="period", serialization_alias="period") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + status: Literal["proposed", "active", "suspended", "inactive", "entered-in-error"] | None = Field(None, alias="status", serialization_alias="status") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + telecom: PyList[ContactPoint] | None = Field(None, alias="telecom", serialization_alias="telecom") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> CareTeam: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/catalog_entry.py b/examples/python/generated/hl7_fhir_r4_core/catalog_entry.py new file mode 100644 index 000000000..a572d1ed9 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/catalog_entry.py @@ -0,0 +1,51 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class CatalogEntryRelatedEntry(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + item: Reference = Field(alias="item", serialization_alias="item") + relationtype: Literal["triggers", "is-replaced-by"] = Field(alias="relationtype", serialization_alias="relationtype") + + +class CatalogEntry(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='CatalogEntry', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='CatalogEntry' + ) + additional_characteristic: PyList[CodeableConcept] | None = Field(None, alias="additionalCharacteristic", serialization_alias="additionalCharacteristic") + additional_classification: PyList[CodeableConcept] | None = Field(None, alias="additionalClassification", serialization_alias="additionalClassification") + additional_identifier: PyList[Identifier] | None = Field(None, alias="additionalIdentifier", serialization_alias="additionalIdentifier") + classification: PyList[CodeableConcept] | None = Field(None, alias="classification", serialization_alias="classification") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + last_updated: str | None = Field(None, alias="lastUpdated", serialization_alias="lastUpdated") + orderable: bool = Field(alias="orderable", serialization_alias="orderable") + referenced_item: Reference = Field(alias="referencedItem", serialization_alias="referencedItem") + related_entry: PyList[CatalogEntryRelatedEntry] | None = Field(None, alias="relatedEntry", serialization_alias="relatedEntry") + status: Literal["draft", "active", "retired", "unknown"] | None = Field(None, alias="status", serialization_alias="status") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + validity_period: Period | None = Field(None, alias="validityPeriod", serialization_alias="validityPeriod") + valid_to: str | None = Field(None, alias="validTo", serialization_alias="validTo") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> CatalogEntry: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/charge_item.py b/examples/python/generated/hl7_fhir_r4_core/charge_item.py new file mode 100644 index 000000000..d7662bf5a --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/charge_item.py @@ -0,0 +1,67 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Identifier, Money, Period, Quantity, Reference, Timing +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ChargeItemPerformer(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + actor: Reference = Field(alias="actor", serialization_alias="actor") + function: CodeableConcept | None = Field(None, alias="function", serialization_alias="function") + + +class ChargeItem(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ChargeItem', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ChargeItem' + ) + account: PyList[Reference] | None = Field(None, alias="account", serialization_alias="account") + bodysite: PyList[CodeableConcept] | None = Field(None, alias="bodysite", serialization_alias="bodysite") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + context: Reference | None = Field(None, alias="context", serialization_alias="context") + cost_center: Reference | None = Field(None, alias="costCenter", serialization_alias="costCenter") + definition_canonical: PyList[str] | None = Field(None, alias="definitionCanonical", serialization_alias="definitionCanonical") + definition_uri: PyList[str] | None = Field(None, alias="definitionUri", serialization_alias="definitionUri") + entered_date: str | None = Field(None, alias="enteredDate", serialization_alias="enteredDate") + enterer: Reference | None = Field(None, alias="enterer", serialization_alias="enterer") + factor_override: float | None = Field(None, alias="factorOverride", serialization_alias="factorOverride") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + occurrence_date_time: str | None = Field(None, alias="occurrenceDateTime", serialization_alias="occurrenceDateTime") + occurrence_period: Period | None = Field(None, alias="occurrencePeriod", serialization_alias="occurrencePeriod") + occurrence_timing: Timing | None = Field(None, alias="occurrenceTiming", serialization_alias="occurrenceTiming") + override_reason: str | None = Field(None, alias="overrideReason", serialization_alias="overrideReason") + part_of: PyList[Reference] | None = Field(None, alias="partOf", serialization_alias="partOf") + performer: PyList[ChargeItemPerformer] | None = Field(None, alias="performer", serialization_alias="performer") + performing_organization: Reference | None = Field(None, alias="performingOrganization", serialization_alias="performingOrganization") + price_override: Money | None = Field(None, alias="priceOverride", serialization_alias="priceOverride") + product_codeable_concept: CodeableConcept | None = Field(None, alias="productCodeableConcept", serialization_alias="productCodeableConcept") + product_reference: Reference | None = Field(None, alias="productReference", serialization_alias="productReference") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + reason: PyList[CodeableConcept] | None = Field(None, alias="reason", serialization_alias="reason") + requesting_organization: Reference | None = Field(None, alias="requestingOrganization", serialization_alias="requestingOrganization") + service: PyList[Reference] | None = Field(None, alias="service", serialization_alias="service") + status: Literal["planned", "billable", "not-billable", "aborted", "billed", "entered-in-error", "unknown"] = Field(alias="status", serialization_alias="status") + subject: Reference = Field(alias="subject", serialization_alias="subject") + supporting_information: PyList[Reference] | None = Field(None, alias="supportingInformation", serialization_alias="supportingInformation") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ChargeItem: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/charge_item_definition.py b/examples/python/generated/hl7_fhir_r4_core/charge_item_definition.py new file mode 100644 index 000000000..373dc8a67 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/charge_item_definition.py @@ -0,0 +1,74 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, ContactDetail, Identifier, Money, Period, Reference, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ChargeItemDefinitionApplicability(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + expression: str | None = Field(None, alias="expression", serialization_alias="expression") + language: str | None = Field(None, alias="language", serialization_alias="language") + +class ChargeItemDefinitionPropertyGroup(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + applicability: PyList[ChargeItemDefinitionApplicability] | None = Field(None, alias="applicability", serialization_alias="applicability") + price_component: PyList[ChargeItemDefinitionPropertyGroupPriceComponent] | None = Field(None, alias="priceComponent", serialization_alias="priceComponent") + +class ChargeItemDefinitionPropertyGroupPriceComponent(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount: Money | None = Field(None, alias="amount", serialization_alias="amount") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + factor: float | None = Field(None, alias="factor", serialization_alias="factor") + type: Literal["base", "surcharge", "deduction", "discount", "tax", "informational"] = Field(alias="type", serialization_alias="type") + + +class ChargeItemDefinition(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ChargeItemDefinition', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ChargeItemDefinition' + ) + applicability: PyList[ChargeItemDefinitionApplicability] | None = Field(None, alias="applicability", serialization_alias="applicability") + approval_date: str | None = Field(None, alias="approvalDate", serialization_alias="approvalDate") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + derived_from_uri: PyList[str] | None = Field(None, alias="derivedFromUri", serialization_alias="derivedFromUri") + description: str | None = Field(None, alias="description", serialization_alias="description") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + instance: PyList[Reference] | None = Field(None, alias="instance", serialization_alias="instance") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + last_review_date: str | None = Field(None, alias="lastReviewDate", serialization_alias="lastReviewDate") + part_of: PyList[str] | None = Field(None, alias="partOf", serialization_alias="partOf") + property_group: PyList[ChargeItemDefinitionPropertyGroup] | None = Field(None, alias="propertyGroup", serialization_alias="propertyGroup") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + replaces: PyList[str] | None = Field(None, alias="replaces", serialization_alias="replaces") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + title: str | None = Field(None, alias="title", serialization_alias="title") + url: str = Field(alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ChargeItemDefinition: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/claim.py b/examples/python/generated/hl7_fhir_r4_core/claim.py new file mode 100644 index 000000000..0c74e3b49 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/claim.py @@ -0,0 +1,184 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Address, Attachment, BackboneElement, CodeableConcept, Identifier, Money, Period, Quantity, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ClaimAccident(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + date: str = Field(alias="date", serialization_alias="date") + location_address: Address | None = Field(None, alias="locationAddress", serialization_alias="locationAddress") + location_reference: Reference | None = Field(None, alias="locationReference", serialization_alias="locationReference") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class ClaimCareTeam(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + provider: Reference = Field(alias="provider", serialization_alias="provider") + qualification: CodeableConcept | None = Field(None, alias="qualification", serialization_alias="qualification") + responsible: bool | None = Field(None, alias="responsible", serialization_alias="responsible") + role: CodeableConcept | None = Field(None, alias="role", serialization_alias="role") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + +class ClaimDiagnosis(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + diagnosis_codeable_concept: CodeableConcept | None = Field(None, alias="diagnosisCodeableConcept", serialization_alias="diagnosisCodeableConcept") + diagnosis_reference: Reference | None = Field(None, alias="diagnosisReference", serialization_alias="diagnosisReference") + on_admission: CodeableConcept | None = Field(None, alias="onAdmission", serialization_alias="onAdmission") + package_code: CodeableConcept | None = Field(None, alias="packageCode", serialization_alias="packageCode") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + type: PyList[CodeableConcept] | None = Field(None, alias="type", serialization_alias="type") + +class ClaimInsurance(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + business_arrangement: str | None = Field(None, alias="businessArrangement", serialization_alias="businessArrangement") + claim_response: Reference | None = Field(None, alias="claimResponse", serialization_alias="claimResponse") + coverage: Reference = Field(alias="coverage", serialization_alias="coverage") + focal: bool = Field(alias="focal", serialization_alias="focal") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + pre_auth_ref: PyList[str] | None = Field(None, alias="preAuthRef", serialization_alias="preAuthRef") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + +class ClaimItem(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + body_site: CodeableConcept | None = Field(None, alias="bodySite", serialization_alias="bodySite") + care_team_sequence: PyList[PositiveInt] | None = Field(None, alias="careTeamSequence", serialization_alias="careTeamSequence") + category: CodeableConcept | None = Field(None, alias="category", serialization_alias="category") + detail: PyList[ClaimItemDetail] | None = Field(None, alias="detail", serialization_alias="detail") + diagnosis_sequence: PyList[PositiveInt] | None = Field(None, alias="diagnosisSequence", serialization_alias="diagnosisSequence") + encounter: PyList[Reference] | None = Field(None, alias="encounter", serialization_alias="encounter") + factor: float | None = Field(None, alias="factor", serialization_alias="factor") + information_sequence: PyList[PositiveInt] | None = Field(None, alias="informationSequence", serialization_alias="informationSequence") + location_address: Address | None = Field(None, alias="locationAddress", serialization_alias="locationAddress") + location_codeable_concept: CodeableConcept | None = Field(None, alias="locationCodeableConcept", serialization_alias="locationCodeableConcept") + location_reference: Reference | None = Field(None, alias="locationReference", serialization_alias="locationReference") + modifier: PyList[CodeableConcept] | None = Field(None, alias="modifier", serialization_alias="modifier") + net: Money | None = Field(None, alias="net", serialization_alias="net") + procedure_sequence: PyList[PositiveInt] | None = Field(None, alias="procedureSequence", serialization_alias="procedureSequence") + product_or_service: CodeableConcept = Field(alias="productOrService", serialization_alias="productOrService") + program_code: PyList[CodeableConcept] | None = Field(None, alias="programCode", serialization_alias="programCode") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + revenue: CodeableConcept | None = Field(None, alias="revenue", serialization_alias="revenue") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + serviced_date: str | None = Field(None, alias="servicedDate", serialization_alias="servicedDate") + serviced_period: Period | None = Field(None, alias="servicedPeriod", serialization_alias="servicedPeriod") + sub_site: PyList[CodeableConcept] | None = Field(None, alias="subSite", serialization_alias="subSite") + udi: PyList[Reference] | None = Field(None, alias="udi", serialization_alias="udi") + unit_price: Money | None = Field(None, alias="unitPrice", serialization_alias="unitPrice") + +class ClaimItemDetail(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + category: CodeableConcept | None = Field(None, alias="category", serialization_alias="category") + factor: float | None = Field(None, alias="factor", serialization_alias="factor") + modifier: PyList[CodeableConcept] | None = Field(None, alias="modifier", serialization_alias="modifier") + net: Money | None = Field(None, alias="net", serialization_alias="net") + product_or_service: CodeableConcept = Field(alias="productOrService", serialization_alias="productOrService") + program_code: PyList[CodeableConcept] | None = Field(None, alias="programCode", serialization_alias="programCode") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + revenue: CodeableConcept | None = Field(None, alias="revenue", serialization_alias="revenue") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + sub_detail: PyList[ClaimItemDetailSubDetail] | None = Field(None, alias="subDetail", serialization_alias="subDetail") + udi: PyList[Reference] | None = Field(None, alias="udi", serialization_alias="udi") + unit_price: Money | None = Field(None, alias="unitPrice", serialization_alias="unitPrice") + +class ClaimItemDetailSubDetail(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + category: CodeableConcept | None = Field(None, alias="category", serialization_alias="category") + factor: float | None = Field(None, alias="factor", serialization_alias="factor") + modifier: PyList[CodeableConcept] | None = Field(None, alias="modifier", serialization_alias="modifier") + net: Money | None = Field(None, alias="net", serialization_alias="net") + product_or_service: CodeableConcept = Field(alias="productOrService", serialization_alias="productOrService") + program_code: PyList[CodeableConcept] | None = Field(None, alias="programCode", serialization_alias="programCode") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + revenue: CodeableConcept | None = Field(None, alias="revenue", serialization_alias="revenue") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + udi: PyList[Reference] | None = Field(None, alias="udi", serialization_alias="udi") + unit_price: Money | None = Field(None, alias="unitPrice", serialization_alias="unitPrice") + +class ClaimPayee(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + party: Reference | None = Field(None, alias="party", serialization_alias="party") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + +class ClaimProcedure(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + date: str | None = Field(None, alias="date", serialization_alias="date") + procedure_codeable_concept: CodeableConcept | None = Field(None, alias="procedureCodeableConcept", serialization_alias="procedureCodeableConcept") + procedure_reference: Reference | None = Field(None, alias="procedureReference", serialization_alias="procedureReference") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + type: PyList[CodeableConcept] | None = Field(None, alias="type", serialization_alias="type") + udi: PyList[Reference] | None = Field(None, alias="udi", serialization_alias="udi") + +class ClaimRelated(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + claim: Reference | None = Field(None, alias="claim", serialization_alias="claim") + reference: Identifier | None = Field(None, alias="reference", serialization_alias="reference") + relationship: CodeableConcept | None = Field(None, alias="relationship", serialization_alias="relationship") + +class ClaimSupportingInfo(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + category: CodeableConcept = Field(alias="category", serialization_alias="category") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + reason: CodeableConcept | None = Field(None, alias="reason", serialization_alias="reason") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + timing_date: str | None = Field(None, alias="timingDate", serialization_alias="timingDate") + timing_period: Period | None = Field(None, alias="timingPeriod", serialization_alias="timingPeriod") + value_attachment: Attachment | None = Field(None, alias="valueAttachment", serialization_alias="valueAttachment") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_reference: Reference | None = Field(None, alias="valueReference", serialization_alias="valueReference") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + + +class Claim(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Claim', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Claim' + ) + accident: ClaimAccident | None = Field(None, alias="accident", serialization_alias="accident") + billable_period: Period | None = Field(None, alias="billablePeriod", serialization_alias="billablePeriod") + care_team: PyList[ClaimCareTeam] | None = Field(None, alias="careTeam", serialization_alias="careTeam") + created: str = Field(alias="created", serialization_alias="created") + diagnosis: PyList[ClaimDiagnosis] | None = Field(None, alias="diagnosis", serialization_alias="diagnosis") + enterer: Reference | None = Field(None, alias="enterer", serialization_alias="enterer") + facility: Reference | None = Field(None, alias="facility", serialization_alias="facility") + funds_reserve: CodeableConcept | None = Field(None, alias="fundsReserve", serialization_alias="fundsReserve") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + insurance: PyList[ClaimInsurance] = Field(alias="insurance", serialization_alias="insurance") + insurer: Reference | None = Field(None, alias="insurer", serialization_alias="insurer") + item: PyList[ClaimItem] | None = Field(None, alias="item", serialization_alias="item") + original_prescription: Reference | None = Field(None, alias="originalPrescription", serialization_alias="originalPrescription") + patient: Reference = Field(alias="patient", serialization_alias="patient") + payee: ClaimPayee | None = Field(None, alias="payee", serialization_alias="payee") + prescription: Reference | None = Field(None, alias="prescription", serialization_alias="prescription") + priority: CodeableConcept = Field(alias="priority", serialization_alias="priority") + procedure: PyList[ClaimProcedure] | None = Field(None, alias="procedure", serialization_alias="procedure") + provider: Reference = Field(alias="provider", serialization_alias="provider") + referral: Reference | None = Field(None, alias="referral", serialization_alias="referral") + related: PyList[ClaimRelated] | None = Field(None, alias="related", serialization_alias="related") + status: Literal["active", "cancelled", "draft", "entered-in-error"] = Field(alias="status", serialization_alias="status") + sub_type: CodeableConcept | None = Field(None, alias="subType", serialization_alias="subType") + supporting_info: PyList[ClaimSupportingInfo] | None = Field(None, alias="supportingInfo", serialization_alias="supportingInfo") + total: Money | None = Field(None, alias="total", serialization_alias="total") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + use: Literal["claim", "preauthorization", "predetermination"] = Field(alias="use", serialization_alias="use") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Claim: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/claim_response.py b/examples/python/generated/hl7_fhir_r4_core/claim_response.py new file mode 100644 index 000000000..6441dec91 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/claim_response.py @@ -0,0 +1,170 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Address, Attachment, BackboneElement, CodeableConcept, Identifier, Money, Period, Quantity, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ClaimResponseAddItem(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + adjudication: PyList[ClaimResponseItemAdjudication] = Field(alias="adjudication", serialization_alias="adjudication") + body_site: CodeableConcept | None = Field(None, alias="bodySite", serialization_alias="bodySite") + detail: PyList[ClaimResponseAddItemDetail] | None = Field(None, alias="detail", serialization_alias="detail") + detail_sequence: PyList[PositiveInt] | None = Field(None, alias="detailSequence", serialization_alias="detailSequence") + factor: float | None = Field(None, alias="factor", serialization_alias="factor") + item_sequence: PyList[PositiveInt] | None = Field(None, alias="itemSequence", serialization_alias="itemSequence") + location_address: Address | None = Field(None, alias="locationAddress", serialization_alias="locationAddress") + location_codeable_concept: CodeableConcept | None = Field(None, alias="locationCodeableConcept", serialization_alias="locationCodeableConcept") + location_reference: Reference | None = Field(None, alias="locationReference", serialization_alias="locationReference") + modifier: PyList[CodeableConcept] | None = Field(None, alias="modifier", serialization_alias="modifier") + net: Money | None = Field(None, alias="net", serialization_alias="net") + note_number: PyList[PositiveInt] | None = Field(None, alias="noteNumber", serialization_alias="noteNumber") + product_or_service: CodeableConcept = Field(alias="productOrService", serialization_alias="productOrService") + program_code: PyList[CodeableConcept] | None = Field(None, alias="programCode", serialization_alias="programCode") + provider: PyList[Reference] | None = Field(None, alias="provider", serialization_alias="provider") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + serviced_date: str | None = Field(None, alias="servicedDate", serialization_alias="servicedDate") + serviced_period: Period | None = Field(None, alias="servicedPeriod", serialization_alias="servicedPeriod") + subdetail_sequence: PyList[PositiveInt] | None = Field(None, alias="subdetailSequence", serialization_alias="subdetailSequence") + sub_site: PyList[CodeableConcept] | None = Field(None, alias="subSite", serialization_alias="subSite") + unit_price: Money | None = Field(None, alias="unitPrice", serialization_alias="unitPrice") + +class ClaimResponseAddItemDetail(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + adjudication: PyList[ClaimResponseItemAdjudication] = Field(alias="adjudication", serialization_alias="adjudication") + factor: float | None = Field(None, alias="factor", serialization_alias="factor") + modifier: PyList[CodeableConcept] | None = Field(None, alias="modifier", serialization_alias="modifier") + net: Money | None = Field(None, alias="net", serialization_alias="net") + note_number: PyList[PositiveInt] | None = Field(None, alias="noteNumber", serialization_alias="noteNumber") + product_or_service: CodeableConcept = Field(alias="productOrService", serialization_alias="productOrService") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + sub_detail: PyList[ClaimResponseAddItemDetailSubDetail] | None = Field(None, alias="subDetail", serialization_alias="subDetail") + unit_price: Money | None = Field(None, alias="unitPrice", serialization_alias="unitPrice") + +class ClaimResponseAddItemDetailSubDetail(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + adjudication: PyList[ClaimResponseItemAdjudication] = Field(alias="adjudication", serialization_alias="adjudication") + factor: float | None = Field(None, alias="factor", serialization_alias="factor") + modifier: PyList[CodeableConcept] | None = Field(None, alias="modifier", serialization_alias="modifier") + net: Money | None = Field(None, alias="net", serialization_alias="net") + note_number: PyList[PositiveInt] | None = Field(None, alias="noteNumber", serialization_alias="noteNumber") + product_or_service: CodeableConcept = Field(alias="productOrService", serialization_alias="productOrService") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + unit_price: Money | None = Field(None, alias="unitPrice", serialization_alias="unitPrice") + +class ClaimResponseError(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + detail_sequence: PositiveInt | None = Field(None, alias="detailSequence", serialization_alias="detailSequence") + item_sequence: PositiveInt | None = Field(None, alias="itemSequence", serialization_alias="itemSequence") + sub_detail_sequence: PositiveInt | None = Field(None, alias="subDetailSequence", serialization_alias="subDetailSequence") + +class ClaimResponseInsurance(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + business_arrangement: str | None = Field(None, alias="businessArrangement", serialization_alias="businessArrangement") + claim_response: Reference | None = Field(None, alias="claimResponse", serialization_alias="claimResponse") + coverage: Reference = Field(alias="coverage", serialization_alias="coverage") + focal: bool = Field(alias="focal", serialization_alias="focal") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + +class ClaimResponseItem(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + adjudication: PyList[ClaimResponseItemAdjudication] = Field(alias="adjudication", serialization_alias="adjudication") + detail: PyList[ClaimResponseItemDetail] | None = Field(None, alias="detail", serialization_alias="detail") + item_sequence: PositiveInt = Field(alias="itemSequence", serialization_alias="itemSequence") + note_number: PyList[PositiveInt] | None = Field(None, alias="noteNumber", serialization_alias="noteNumber") + +class ClaimResponseItemAdjudication(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount: Money | None = Field(None, alias="amount", serialization_alias="amount") + category: CodeableConcept = Field(alias="category", serialization_alias="category") + reason: CodeableConcept | None = Field(None, alias="reason", serialization_alias="reason") + value: float | None = Field(None, alias="value", serialization_alias="value") + +class ClaimResponseItemDetail(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + adjudication: PyList[ClaimResponseItemAdjudication] = Field(alias="adjudication", serialization_alias="adjudication") + detail_sequence: PositiveInt = Field(alias="detailSequence", serialization_alias="detailSequence") + note_number: PyList[PositiveInt] | None = Field(None, alias="noteNumber", serialization_alias="noteNumber") + sub_detail: PyList[ClaimResponseItemDetailSubDetail] | None = Field(None, alias="subDetail", serialization_alias="subDetail") + +class ClaimResponseItemDetailSubDetail(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + adjudication: PyList[ClaimResponseItemAdjudication] | None = Field(None, alias="adjudication", serialization_alias="adjudication") + note_number: PyList[PositiveInt] | None = Field(None, alias="noteNumber", serialization_alias="noteNumber") + sub_detail_sequence: PositiveInt = Field(alias="subDetailSequence", serialization_alias="subDetailSequence") + +class ClaimResponsePayment(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + adjustment: Money | None = Field(None, alias="adjustment", serialization_alias="adjustment") + adjustment_reason: CodeableConcept | None = Field(None, alias="adjustmentReason", serialization_alias="adjustmentReason") + amount: Money = Field(alias="amount", serialization_alias="amount") + date: str | None = Field(None, alias="date", serialization_alias="date") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + +class ClaimResponseProcessNote(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + language: CodeableConcept | None = Field(None, alias="language", serialization_alias="language") + number: PositiveInt | None = Field(None, alias="number", serialization_alias="number") + text: str = Field(alias="text", serialization_alias="text") + type: Literal["display", "print", "printoper"] | None = Field(None, alias="type", serialization_alias="type") + +class ClaimResponseTotal(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount: Money = Field(alias="amount", serialization_alias="amount") + category: CodeableConcept = Field(alias="category", serialization_alias="category") + + +class ClaimResponse(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ClaimResponse', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ClaimResponse' + ) + add_item: PyList[ClaimResponseAddItem] | None = Field(None, alias="addItem", serialization_alias="addItem") + adjudication: PyList[ClaimResponseItemAdjudication] | None = Field(None, alias="adjudication", serialization_alias="adjudication") + communication_request: PyList[Reference] | None = Field(None, alias="communicationRequest", serialization_alias="communicationRequest") + created: str = Field(alias="created", serialization_alias="created") + disposition: str | None = Field(None, alias="disposition", serialization_alias="disposition") + error: PyList[ClaimResponseError] | None = Field(None, alias="error", serialization_alias="error") + form: Attachment | None = Field(None, alias="form", serialization_alias="form") + form_code: CodeableConcept | None = Field(None, alias="formCode", serialization_alias="formCode") + funds_reserve: CodeableConcept | None = Field(None, alias="fundsReserve", serialization_alias="fundsReserve") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + insurance: PyList[ClaimResponseInsurance] | None = Field(None, alias="insurance", serialization_alias="insurance") + insurer: Reference = Field(alias="insurer", serialization_alias="insurer") + item: PyList[ClaimResponseItem] | None = Field(None, alias="item", serialization_alias="item") + outcome: Literal["queued", "complete", "error", "partial"] = Field(alias="outcome", serialization_alias="outcome") + patient: Reference = Field(alias="patient", serialization_alias="patient") + payee_type: CodeableConcept | None = Field(None, alias="payeeType", serialization_alias="payeeType") + payment: ClaimResponsePayment | None = Field(None, alias="payment", serialization_alias="payment") + pre_auth_period: Period | None = Field(None, alias="preAuthPeriod", serialization_alias="preAuthPeriod") + pre_auth_ref: str | None = Field(None, alias="preAuthRef", serialization_alias="preAuthRef") + process_note: PyList[ClaimResponseProcessNote] | None = Field(None, alias="processNote", serialization_alias="processNote") + request: Reference | None = Field(None, alias="request", serialization_alias="request") + requestor: Reference | None = Field(None, alias="requestor", serialization_alias="requestor") + status: Literal["active", "cancelled", "draft", "entered-in-error"] = Field(alias="status", serialization_alias="status") + sub_type: CodeableConcept | None = Field(None, alias="subType", serialization_alias="subType") + total: PyList[ClaimResponseTotal] | None = Field(None, alias="total", serialization_alias="total") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + use: Literal["claim", "preauthorization", "predetermination"] = Field(alias="use", serialization_alias="use") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ClaimResponse: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/clinical_impression.py b/examples/python/generated/hl7_fhir_r4_core/clinical_impression.py new file mode 100644 index 000000000..3b3ccd459 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/clinical_impression.py @@ -0,0 +1,65 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ClinicalImpressionFinding(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + basis: str | None = Field(None, alias="basis", serialization_alias="basis") + item_codeable_concept: CodeableConcept | None = Field(None, alias="itemCodeableConcept", serialization_alias="itemCodeableConcept") + item_reference: Reference | None = Field(None, alias="itemReference", serialization_alias="itemReference") + +class ClinicalImpressionInvestigation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + item: PyList[Reference] | None = Field(None, alias="item", serialization_alias="item") + + +class ClinicalImpression(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ClinicalImpression', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ClinicalImpression' + ) + assessor: Reference | None = Field(None, alias="assessor", serialization_alias="assessor") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + effective_date_time: str | None = Field(None, alias="effectiveDateTime", serialization_alias="effectiveDateTime") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + finding: PyList[ClinicalImpressionFinding] | None = Field(None, alias="finding", serialization_alias="finding") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + investigation: PyList[ClinicalImpressionInvestigation] | None = Field(None, alias="investigation", serialization_alias="investigation") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + previous: Reference | None = Field(None, alias="previous", serialization_alias="previous") + problem: PyList[Reference] | None = Field(None, alias="problem", serialization_alias="problem") + prognosis_codeable_concept: PyList[CodeableConcept] | None = Field(None, alias="prognosisCodeableConcept", serialization_alias="prognosisCodeableConcept") + prognosis_reference: PyList[Reference] | None = Field(None, alias="prognosisReference", serialization_alias="prognosisReference") + protocol: PyList[str] | None = Field(None, alias="protocol", serialization_alias="protocol") + status: Literal["in-progress", "completed", "entered-in-error"] = Field(alias="status", serialization_alias="status") + status_reason: CodeableConcept | None = Field(None, alias="statusReason", serialization_alias="statusReason") + subject: Reference = Field(alias="subject", serialization_alias="subject") + summary: str | None = Field(None, alias="summary", serialization_alias="summary") + supporting_info: PyList[Reference] | None = Field(None, alias="supportingInfo", serialization_alias="supportingInfo") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ClinicalImpression: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/code_system.py b/examples/python/generated/hl7_fhir_r4_core/code_system.py new file mode 100644 index 000000000..0ff7e8b42 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/code_system.py @@ -0,0 +1,99 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Coding, ContactDetail, Identifier, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class CodeSystemConcept(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: str = Field(alias="code", serialization_alias="code") + concept: PyList[CodeSystemConcept] | None = Field(None, alias="concept", serialization_alias="concept") + definition: str | None = Field(None, alias="definition", serialization_alias="definition") + designation: PyList[CodeSystemConceptDesignation] | None = Field(None, alias="designation", serialization_alias="designation") + display: str | None = Field(None, alias="display", serialization_alias="display") + property: PyList[CodeSystemConceptProperty] | None = Field(None, alias="property", serialization_alias="property") + +class CodeSystemConceptDesignation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + language: str | None = Field(None, alias="language", serialization_alias="language") + use: Coding | None = Field(None, alias="use", serialization_alias="use") + value: str = Field(alias="value", serialization_alias="value") + +class CodeSystemConceptProperty(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: str = Field(alias="code", serialization_alias="code") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_code: str | None = Field(None, alias="valueCode", serialization_alias="valueCode") + value_coding: Coding | None = Field(None, alias="valueCoding", serialization_alias="valueCoding") + value_date_time: str | None = Field(None, alias="valueDateTime", serialization_alias="valueDateTime") + value_decimal: float | None = Field(None, alias="valueDecimal", serialization_alias="valueDecimal") + value_integer: int | None = Field(None, alias="valueInteger", serialization_alias="valueInteger") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + +class CodeSystemFilter(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: str = Field(alias="code", serialization_alias="code") + description: str | None = Field(None, alias="description", serialization_alias="description") + operator: PyList[Literal["=", "is-a", "descendent-of", "is-not-a", "regex", "in", "not-in", "generalizes", "exists"]] = Field(alias="operator", serialization_alias="operator") + value: str = Field(alias="value", serialization_alias="value") + +class CodeSystemProperty(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: str = Field(alias="code", serialization_alias="code") + description: str | None = Field(None, alias="description", serialization_alias="description") + type: Literal["code", "Coding", "string", "integer", "boolean", "dateTime", "decimal"] = Field(alias="type", serialization_alias="type") + uri: str | None = Field(None, alias="uri", serialization_alias="uri") + + +class CodeSystem(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='CodeSystem', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='CodeSystem' + ) + case_sensitive: bool | None = Field(None, alias="caseSensitive", serialization_alias="caseSensitive") + compositional: bool | None = Field(None, alias="compositional", serialization_alias="compositional") + concept: PyList[CodeSystemConcept] | None = Field(None, alias="concept", serialization_alias="concept") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + content: Literal["not-present", "example", "fragment", "complete", "supplement"] = Field(alias="content", serialization_alias="content") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + count: int | None = Field(None, alias="count", serialization_alias="count") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + filter: PyList[CodeSystemFilter] | None = Field(None, alias="filter", serialization_alias="filter") + hierarchy_meaning: Literal["grouped-by", "is-a", "part-of", "classified-with"] | None = Field(None, alias="hierarchyMeaning", serialization_alias="hierarchyMeaning") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + name: str | None = Field(None, alias="name", serialization_alias="name") + property: PyList[CodeSystemProperty] | None = Field(None, alias="property", serialization_alias="property") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + supplements: str | None = Field(None, alias="supplements", serialization_alias="supplements") + title: str | None = Field(None, alias="title", serialization_alias="title") + url: str | None = Field(None, alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + value_set: str | None = Field(None, alias="valueSet", serialization_alias="valueSet") + version: str | None = Field(None, alias="version", serialization_alias="version") + version_needed: bool | None = Field(None, alias="versionNeeded", serialization_alias="versionNeeded") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> CodeSystem: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/communication.py b/examples/python/generated/hl7_fhir_r4_core/communication.py new file mode 100644 index 000000000..4db43635f --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/communication.py @@ -0,0 +1,62 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, Attachment, BackboneElement, CodeableConcept, Identifier, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class CommunicationPayload(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + content_attachment: Attachment | None = Field(None, alias="contentAttachment", serialization_alias="contentAttachment") + content_reference: Reference | None = Field(None, alias="contentReference", serialization_alias="contentReference") + content_string: str | None = Field(None, alias="contentString", serialization_alias="contentString") + + +class Communication(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Communication', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Communication' + ) + about: PyList[Reference] | None = Field(None, alias="about", serialization_alias="about") + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + in_response_to: PyList[Reference] | None = Field(None, alias="inResponseTo", serialization_alias="inResponseTo") + instantiates_canonical: PyList[str] | None = Field(None, alias="instantiatesCanonical", serialization_alias="instantiatesCanonical") + instantiates_uri: PyList[str] | None = Field(None, alias="instantiatesUri", serialization_alias="instantiatesUri") + medium: PyList[CodeableConcept] | None = Field(None, alias="medium", serialization_alias="medium") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + part_of: PyList[Reference] | None = Field(None, alias="partOf", serialization_alias="partOf") + payload: PyList[CommunicationPayload] | None = Field(None, alias="payload", serialization_alias="payload") + priority: Literal["routine", "urgent", "asap", "stat"] | None = Field(None, alias="priority", serialization_alias="priority") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + received: str | None = Field(None, alias="received", serialization_alias="received") + recipient: PyList[Reference] | None = Field(None, alias="recipient", serialization_alias="recipient") + sender: Reference | None = Field(None, alias="sender", serialization_alias="sender") + sent: str | None = Field(None, alias="sent", serialization_alias="sent") + status: Literal["preparation", "in-progress", "not-done", "on-hold", "stopped", "completed", "entered-in-error", "unknown"] = Field(alias="status", serialization_alias="status") + status_reason: CodeableConcept | None = Field(None, alias="statusReason", serialization_alias="statusReason") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + topic: CodeableConcept | None = Field(None, alias="topic", serialization_alias="topic") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Communication: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/communication_request.py b/examples/python/generated/hl7_fhir_r4_core/communication_request.py new file mode 100644 index 000000000..978e35ffd --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/communication_request.py @@ -0,0 +1,62 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, Attachment, BackboneElement, CodeableConcept, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class CommunicationRequestPayload(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + content_attachment: Attachment | None = Field(None, alias="contentAttachment", serialization_alias="contentAttachment") + content_reference: Reference | None = Field(None, alias="contentReference", serialization_alias="contentReference") + content_string: str | None = Field(None, alias="contentString", serialization_alias="contentString") + + +class CommunicationRequest(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='CommunicationRequest', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='CommunicationRequest' + ) + about: PyList[Reference] | None = Field(None, alias="about", serialization_alias="about") + authored_on: str | None = Field(None, alias="authoredOn", serialization_alias="authoredOn") + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + do_not_perform: bool | None = Field(None, alias="doNotPerform", serialization_alias="doNotPerform") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + group_identifier: Identifier | None = Field(None, alias="groupIdentifier", serialization_alias="groupIdentifier") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + medium: PyList[CodeableConcept] | None = Field(None, alias="medium", serialization_alias="medium") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + occurrence_date_time: str | None = Field(None, alias="occurrenceDateTime", serialization_alias="occurrenceDateTime") + occurrence_period: Period | None = Field(None, alias="occurrencePeriod", serialization_alias="occurrencePeriod") + payload: PyList[CommunicationRequestPayload] | None = Field(None, alias="payload", serialization_alias="payload") + priority: Literal["routine", "urgent", "asap", "stat"] | None = Field(None, alias="priority", serialization_alias="priority") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + recipient: PyList[Reference] | None = Field(None, alias="recipient", serialization_alias="recipient") + replaces: PyList[Reference] | None = Field(None, alias="replaces", serialization_alias="replaces") + requester: Reference | None = Field(None, alias="requester", serialization_alias="requester") + sender: Reference | None = Field(None, alias="sender", serialization_alias="sender") + status: Literal["draft", "active", "on-hold", "revoked", "completed", "entered-in-error", "unknown"] = Field(alias="status", serialization_alias="status") + status_reason: CodeableConcept | None = Field(None, alias="statusReason", serialization_alias="statusReason") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> CommunicationRequest: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/compartment_definition.py b/examples/python/generated/hl7_fhir_r4_core/compartment_definition.py new file mode 100644 index 000000000..f9feeaecd --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/compartment_definition.py @@ -0,0 +1,51 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import BackboneElement, ContactDetail, UsageContext +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class CompartmentDefinitionResource(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: str = Field(alias="code", serialization_alias="code") + documentation: str | None = Field(None, alias="documentation", serialization_alias="documentation") + param: PyList[str] | None = Field(None, alias="param", serialization_alias="param") + + +class CompartmentDefinition(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='CompartmentDefinition', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='CompartmentDefinition' + ) + code: Literal["Patient", "Encounter", "RelatedPerson", "Practitioner", "Device"] = Field(alias="code", serialization_alias="code") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + name: str = Field(alias="name", serialization_alias="name") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + resource: PyList[CompartmentDefinitionResource] | None = Field(None, alias="resource", serialization_alias="resource") + search: bool = Field(alias="search", serialization_alias="search") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + url: str = Field(alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> CompartmentDefinition: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/composition.py b/examples/python/generated/hl7_fhir_r4_core/composition.py new file mode 100644 index 000000000..e721c8f46 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/composition.py @@ -0,0 +1,79 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Narrative, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class CompositionAttester(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + mode: Literal["personal", "professional", "legal", "official"] = Field(alias="mode", serialization_alias="mode") + party: Reference | None = Field(None, alias="party", serialization_alias="party") + time: str | None = Field(None, alias="time", serialization_alias="time") + +class CompositionEvent(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: PyList[CodeableConcept] | None = Field(None, alias="code", serialization_alias="code") + detail: PyList[Reference] | None = Field(None, alias="detail", serialization_alias="detail") + period: Period | None = Field(None, alias="period", serialization_alias="period") + +class CompositionRelatesTo(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: Literal["replaces", "transforms", "signs", "appends"] = Field(alias="code", serialization_alias="code") + target_identifier: Identifier | None = Field(None, alias="targetIdentifier", serialization_alias="targetIdentifier") + target_reference: Reference | None = Field(None, alias="targetReference", serialization_alias="targetReference") + +class CompositionSection(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + author: PyList[Reference] | None = Field(None, alias="author", serialization_alias="author") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + empty_reason: CodeableConcept | None = Field(None, alias="emptyReason", serialization_alias="emptyReason") + entry: PyList[Reference] | None = Field(None, alias="entry", serialization_alias="entry") + focus: Reference | None = Field(None, alias="focus", serialization_alias="focus") + mode: Literal["working", "snapshot", "changes"] | None = Field(None, alias="mode", serialization_alias="mode") + ordered_by: CodeableConcept | None = Field(None, alias="orderedBy", serialization_alias="orderedBy") + section: PyList[CompositionSection] | None = Field(None, alias="section", serialization_alias="section") + text: Narrative | None = Field(None, alias="text", serialization_alias="text") + title: str | None = Field(None, alias="title", serialization_alias="title") + + +class Composition(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Composition', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Composition' + ) + attester: PyList[CompositionAttester] | None = Field(None, alias="attester", serialization_alias="attester") + author: PyList[Reference] = Field(alias="author", serialization_alias="author") + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + confidentiality: Literal["U", "L", "M", "N", "R", "V"] | None = Field(None, alias="confidentiality", serialization_alias="confidentiality") + custodian: Reference | None = Field(None, alias="custodian", serialization_alias="custodian") + date: str = Field(alias="date", serialization_alias="date") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + event: PyList[CompositionEvent] | None = Field(None, alias="event", serialization_alias="event") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + relates_to: PyList[CompositionRelatesTo] | None = Field(None, alias="relatesTo", serialization_alias="relatesTo") + section: PyList[CompositionSection] | None = Field(None, alias="section", serialization_alias="section") + status: Literal["preliminary", "final", "amended", "entered-in-error"] = Field(alias="status", serialization_alias="status") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + title: str = Field(alias="title", serialization_alias="title") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Composition: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/concept_map.py b/examples/python/generated/hl7_fhir_r4_core/concept_map.py new file mode 100644 index 000000000..3b6635632 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/concept_map.py @@ -0,0 +1,91 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, ContactDetail, Identifier, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ConceptMapGroup(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + element: PyList[ConceptMapGroupElement] = Field(alias="element", serialization_alias="element") + source: str | None = Field(None, alias="source", serialization_alias="source") + source_version: str | None = Field(None, alias="sourceVersion", serialization_alias="sourceVersion") + target: str | None = Field(None, alias="target", serialization_alias="target") + target_version: str | None = Field(None, alias="targetVersion", serialization_alias="targetVersion") + unmapped: ConceptMapGroupUnmapped | None = Field(None, alias="unmapped", serialization_alias="unmapped") + +class ConceptMapGroupElement(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: str | None = Field(None, alias="code", serialization_alias="code") + display: str | None = Field(None, alias="display", serialization_alias="display") + target: PyList[ConceptMapGroupElementTarget] | None = Field(None, alias="target", serialization_alias="target") + +class ConceptMapGroupElementTarget(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: str | None = Field(None, alias="code", serialization_alias="code") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + depends_on: PyList[ConceptMapGroupElementTargetDependsOn] | None = Field(None, alias="dependsOn", serialization_alias="dependsOn") + display: str | None = Field(None, alias="display", serialization_alias="display") + equivalence: Literal["relatedto", "equivalent", "equal", "wider", "subsumes", "narrower", "specializes", "inexact", "unmatched", "disjoint"] = Field(alias="equivalence", serialization_alias="equivalence") + product: PyList[ConceptMapGroupElementTargetDependsOn] | None = Field(None, alias="product", serialization_alias="product") + +class ConceptMapGroupElementTargetDependsOn(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + display: str | None = Field(None, alias="display", serialization_alias="display") + property: str = Field(alias="property", serialization_alias="property") + system: str | None = Field(None, alias="system", serialization_alias="system") + value: str = Field(alias="value", serialization_alias="value") + +class ConceptMapGroupUnmapped(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: str | None = Field(None, alias="code", serialization_alias="code") + display: str | None = Field(None, alias="display", serialization_alias="display") + mode: Literal["provided", "fixed", "other-map"] = Field(alias="mode", serialization_alias="mode") + url: str | None = Field(None, alias="url", serialization_alias="url") + + +class ConceptMap(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ConceptMap', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ConceptMap' + ) + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + group: PyList[ConceptMapGroup] | None = Field(None, alias="group", serialization_alias="group") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + name: str | None = Field(None, alias="name", serialization_alias="name") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + source_canonical: str | None = Field(None, alias="sourceCanonical", serialization_alias="sourceCanonical") + source_uri: str | None = Field(None, alias="sourceUri", serialization_alias="sourceUri") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + target_canonical: str | None = Field(None, alias="targetCanonical", serialization_alias="targetCanonical") + target_uri: str | None = Field(None, alias="targetUri", serialization_alias="targetUri") + title: str | None = Field(None, alias="title", serialization_alias="title") + url: str | None = Field(None, alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ConceptMap: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/condition.py b/examples/python/generated/hl7_fhir_r4_core/condition.py new file mode 100644 index 000000000..07a019354 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/condition.py @@ -0,0 +1,69 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Age, Annotation, BackboneElement, CodeableConcept, Identifier, Period, Range, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ConditionEvidence(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: PyList[CodeableConcept] | None = Field(None, alias="code", serialization_alias="code") + detail: PyList[Reference] | None = Field(None, alias="detail", serialization_alias="detail") + +class ConditionStage(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + assessment: PyList[Reference] | None = Field(None, alias="assessment", serialization_alias="assessment") + summary: CodeableConcept | None = Field(None, alias="summary", serialization_alias="summary") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + +class Condition(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Condition', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Condition' + ) + abatement_age: Age | None = Field(None, alias="abatementAge", serialization_alias="abatementAge") + abatement_date_time: str | None = Field(None, alias="abatementDateTime", serialization_alias="abatementDateTime") + abatement_period: Period | None = Field(None, alias="abatementPeriod", serialization_alias="abatementPeriod") + abatement_range: Range | None = Field(None, alias="abatementRange", serialization_alias="abatementRange") + abatement_string: str | None = Field(None, alias="abatementString", serialization_alias="abatementString") + asserter: Reference | None = Field(None, alias="asserter", serialization_alias="asserter") + body_site: PyList[CodeableConcept] | None = Field(None, alias="bodySite", serialization_alias="bodySite") + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + clinical_status: CodeableConcept | None = Field(None, alias="clinicalStatus", serialization_alias="clinicalStatus") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + evidence: PyList[ConditionEvidence] | None = Field(None, alias="evidence", serialization_alias="evidence") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + onset_age: Age | None = Field(None, alias="onsetAge", serialization_alias="onsetAge") + onset_date_time: str | None = Field(None, alias="onsetDateTime", serialization_alias="onsetDateTime") + onset_period: Period | None = Field(None, alias="onsetPeriod", serialization_alias="onsetPeriod") + onset_range: Range | None = Field(None, alias="onsetRange", serialization_alias="onsetRange") + onset_string: str | None = Field(None, alias="onsetString", serialization_alias="onsetString") + recorded_date: str | None = Field(None, alias="recordedDate", serialization_alias="recordedDate") + recorder: Reference | None = Field(None, alias="recorder", serialization_alias="recorder") + severity: CodeableConcept | None = Field(None, alias="severity", serialization_alias="severity") + stage: PyList[ConditionStage] | None = Field(None, alias="stage", serialization_alias="stage") + subject: Reference = Field(alias="subject", serialization_alias="subject") + verification_status: CodeableConcept | None = Field(None, alias="verificationStatus", serialization_alias="verificationStatus") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Condition: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/consent.py b/examples/python/generated/hl7_fhir_r4_core/consent.py new file mode 100644 index 000000000..e3b9ef208 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/consent.py @@ -0,0 +1,82 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Attachment, BackboneElement, CodeableConcept, Coding, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ConsentPolicy(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + authority: str | None = Field(None, alias="authority", serialization_alias="authority") + uri: str | None = Field(None, alias="uri", serialization_alias="uri") + +class ConsentProvision(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + action: PyList[CodeableConcept] | None = Field(None, alias="action", serialization_alias="action") + actor: PyList[ConsentProvisionActor] | None = Field(None, alias="actor", serialization_alias="actor") + class_: PyList[Coding] | None = Field(None, alias="class", serialization_alias="class") + code: PyList[CodeableConcept] | None = Field(None, alias="code", serialization_alias="code") + data: PyList[ConsentProvisionData] | None = Field(None, alias="data", serialization_alias="data") + data_period: Period | None = Field(None, alias="dataPeriod", serialization_alias="dataPeriod") + period: Period | None = Field(None, alias="period", serialization_alias="period") + provision: PyList[ConsentProvision] | None = Field(None, alias="provision", serialization_alias="provision") + purpose: PyList[Coding] | None = Field(None, alias="purpose", serialization_alias="purpose") + security_label: PyList[Coding] | None = Field(None, alias="securityLabel", serialization_alias="securityLabel") + type: Literal["deny", "permit"] | None = Field(None, alias="type", serialization_alias="type") + +class ConsentProvisionActor(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + reference: Reference = Field(alias="reference", serialization_alias="reference") + role: CodeableConcept = Field(alias="role", serialization_alias="role") + +class ConsentProvisionData(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + meaning: Literal["instance", "related", "dependents", "authoredby"] = Field(alias="meaning", serialization_alias="meaning") + reference: Reference = Field(alias="reference", serialization_alias="reference") + +class ConsentVerification(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + verification_date: str | None = Field(None, alias="verificationDate", serialization_alias="verificationDate") + verified: bool = Field(alias="verified", serialization_alias="verified") + verified_with: Reference | None = Field(None, alias="verifiedWith", serialization_alias="verifiedWith") + + +class Consent(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Consent', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Consent' + ) + category: PyList[CodeableConcept] = Field(alias="category", serialization_alias="category") + date_time: str | None = Field(None, alias="dateTime", serialization_alias="dateTime") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + organization: PyList[Reference] | None = Field(None, alias="organization", serialization_alias="organization") + patient: Reference | None = Field(None, alias="patient", serialization_alias="patient") + performer: PyList[Reference] | None = Field(None, alias="performer", serialization_alias="performer") + policy: PyList[ConsentPolicy] | None = Field(None, alias="policy", serialization_alias="policy") + policy_rule: CodeableConcept | None = Field(None, alias="policyRule", serialization_alias="policyRule") + provision: ConsentProvision | None = Field(None, alias="provision", serialization_alias="provision") + scope: CodeableConcept = Field(alias="scope", serialization_alias="scope") + source_attachment: Attachment | None = Field(None, alias="sourceAttachment", serialization_alias="sourceAttachment") + source_reference: Reference | None = Field(None, alias="sourceReference", serialization_alias="sourceReference") + status: Literal["draft", "proposed", "active", "rejected", "inactive", "entered-in-error"] = Field(alias="status", serialization_alias="status") + verification: PyList[ConsentVerification] | None = Field(None, alias="verification", serialization_alias="verification") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Consent: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/contract.py b/examples/python/generated/hl7_fhir_r4_core/contract.py new file mode 100644 index 000000000..5a859aa85 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/contract.py @@ -0,0 +1,228 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, Attachment, BackboneElement, CodeableConcept, Coding, Identifier, Money, Period, Quantity, \ + Reference, Signature, Timing +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ContractContentDefinition(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + publication_date: str | None = Field(None, alias="publicationDate", serialization_alias="publicationDate") + publication_status: Literal["amended", "appended", "cancelled", "disputed", "entered-in-error", "executable", "executed", "negotiable", "offered", "policy", "rejected", "renewed", "revoked", "resolved", "terminated"] = Field(alias="publicationStatus", serialization_alias="publicationStatus") + publisher: Reference | None = Field(None, alias="publisher", serialization_alias="publisher") + sub_type: CodeableConcept | None = Field(None, alias="subType", serialization_alias="subType") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + +class ContractFriendly(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + content_attachment: Attachment | None = Field(None, alias="contentAttachment", serialization_alias="contentAttachment") + content_reference: Reference | None = Field(None, alias="contentReference", serialization_alias="contentReference") + +class ContractLegal(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + content_attachment: Attachment | None = Field(None, alias="contentAttachment", serialization_alias="contentAttachment") + content_reference: Reference | None = Field(None, alias="contentReference", serialization_alias="contentReference") + +class ContractRule(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + content_attachment: Attachment | None = Field(None, alias="contentAttachment", serialization_alias="contentAttachment") + content_reference: Reference | None = Field(None, alias="contentReference", serialization_alias="contentReference") + +class ContractSigner(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + party: Reference = Field(alias="party", serialization_alias="party") + signature: PyList[Signature] = Field(alias="signature", serialization_alias="signature") + type: Coding = Field(alias="type", serialization_alias="type") + +class ContractTerm(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + action: PyList[ContractTermAction] | None = Field(None, alias="action", serialization_alias="action") + applies: Period | None = Field(None, alias="applies", serialization_alias="applies") + asset: PyList[ContractTermAsset] | None = Field(None, alias="asset", serialization_alias="asset") + group: PyList[ContractTerm] | None = Field(None, alias="group", serialization_alias="group") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + issued: str | None = Field(None, alias="issued", serialization_alias="issued") + offer: ContractTermOffer = Field(alias="offer", serialization_alias="offer") + security_label: PyList[ContractTermSecurityLabel] | None = Field(None, alias="securityLabel", serialization_alias="securityLabel") + sub_type: CodeableConcept | None = Field(None, alias="subType", serialization_alias="subType") + text: str | None = Field(None, alias="text", serialization_alias="text") + topic_codeable_concept: CodeableConcept | None = Field(None, alias="topicCodeableConcept", serialization_alias="topicCodeableConcept") + topic_reference: Reference | None = Field(None, alias="topicReference", serialization_alias="topicReference") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class ContractTermAction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + context: Reference | None = Field(None, alias="context", serialization_alias="context") + context_link_id: PyList[str] | None = Field(None, alias="contextLinkId", serialization_alias="contextLinkId") + do_not_perform: bool | None = Field(None, alias="doNotPerform", serialization_alias="doNotPerform") + intent: CodeableConcept = Field(alias="intent", serialization_alias="intent") + link_id: PyList[str] | None = Field(None, alias="linkId", serialization_alias="linkId") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + occurrence_date_time: str | None = Field(None, alias="occurrenceDateTime", serialization_alias="occurrenceDateTime") + occurrence_period: Period | None = Field(None, alias="occurrencePeriod", serialization_alias="occurrencePeriod") + occurrence_timing: Timing | None = Field(None, alias="occurrenceTiming", serialization_alias="occurrenceTiming") + performer: Reference | None = Field(None, alias="performer", serialization_alias="performer") + performer_link_id: PyList[str] | None = Field(None, alias="performerLinkId", serialization_alias="performerLinkId") + performer_role: CodeableConcept | None = Field(None, alias="performerRole", serialization_alias="performerRole") + performer_type: PyList[CodeableConcept] | None = Field(None, alias="performerType", serialization_alias="performerType") + reason: PyList[str] | None = Field(None, alias="reason", serialization_alias="reason") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_link_id: PyList[str] | None = Field(None, alias="reasonLinkId", serialization_alias="reasonLinkId") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + requester: PyList[Reference] | None = Field(None, alias="requester", serialization_alias="requester") + requester_link_id: PyList[str] | None = Field(None, alias="requesterLinkId", serialization_alias="requesterLinkId") + security_label_number: PyList[int] | None = Field(None, alias="securityLabelNumber", serialization_alias="securityLabelNumber") + status: CodeableConcept = Field(alias="status", serialization_alias="status") + subject: PyList[ContractTermActionSubject] | None = Field(None, alias="subject", serialization_alias="subject") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + +class ContractTermActionSubject(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + reference: PyList[Reference] = Field(alias="reference", serialization_alias="reference") + role: CodeableConcept | None = Field(None, alias="role", serialization_alias="role") + +class ContractTermAsset(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + answer: PyList[ContractTermOfferAnswer] | None = Field(None, alias="answer", serialization_alias="answer") + condition: str | None = Field(None, alias="condition", serialization_alias="condition") + context: PyList[ContractTermAssetContext] | None = Field(None, alias="context", serialization_alias="context") + link_id: PyList[str] | None = Field(None, alias="linkId", serialization_alias="linkId") + period: PyList[Period] | None = Field(None, alias="period", serialization_alias="period") + period_type: PyList[CodeableConcept] | None = Field(None, alias="periodType", serialization_alias="periodType") + relationship: Coding | None = Field(None, alias="relationship", serialization_alias="relationship") + scope: CodeableConcept | None = Field(None, alias="scope", serialization_alias="scope") + security_label_number: PyList[int] | None = Field(None, alias="securityLabelNumber", serialization_alias="securityLabelNumber") + subtype: PyList[CodeableConcept] | None = Field(None, alias="subtype", serialization_alias="subtype") + text: str | None = Field(None, alias="text", serialization_alias="text") + type: PyList[CodeableConcept] | None = Field(None, alias="type", serialization_alias="type") + type_reference: PyList[Reference] | None = Field(None, alias="typeReference", serialization_alias="typeReference") + use_period: PyList[Period] | None = Field(None, alias="usePeriod", serialization_alias="usePeriod") + valued_item: PyList[ContractTermAssetValuedItem] | None = Field(None, alias="valuedItem", serialization_alias="valuedItem") + +class ContractTermAssetContext(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: PyList[CodeableConcept] | None = Field(None, alias="code", serialization_alias="code") + reference: Reference | None = Field(None, alias="reference", serialization_alias="reference") + text: str | None = Field(None, alias="text", serialization_alias="text") + +class ContractTermAssetValuedItem(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + effective_time: str | None = Field(None, alias="effectiveTime", serialization_alias="effectiveTime") + entity_codeable_concept: CodeableConcept | None = Field(None, alias="entityCodeableConcept", serialization_alias="entityCodeableConcept") + entity_reference: Reference | None = Field(None, alias="entityReference", serialization_alias="entityReference") + factor: float | None = Field(None, alias="factor", serialization_alias="factor") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + link_id: PyList[str] | None = Field(None, alias="linkId", serialization_alias="linkId") + net: Money | None = Field(None, alias="net", serialization_alias="net") + payment: str | None = Field(None, alias="payment", serialization_alias="payment") + payment_date: str | None = Field(None, alias="paymentDate", serialization_alias="paymentDate") + points: float | None = Field(None, alias="points", serialization_alias="points") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + recipient: Reference | None = Field(None, alias="recipient", serialization_alias="recipient") + responsible: Reference | None = Field(None, alias="responsible", serialization_alias="responsible") + security_label_number: PyList[int] | None = Field(None, alias="securityLabelNumber", serialization_alias="securityLabelNumber") + unit_price: Money | None = Field(None, alias="unitPrice", serialization_alias="unitPrice") + +class ContractTermOffer(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + answer: PyList[ContractTermOfferAnswer] | None = Field(None, alias="answer", serialization_alias="answer") + decision: CodeableConcept | None = Field(None, alias="decision", serialization_alias="decision") + decision_mode: PyList[CodeableConcept] | None = Field(None, alias="decisionMode", serialization_alias="decisionMode") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + link_id: PyList[str] | None = Field(None, alias="linkId", serialization_alias="linkId") + party: PyList[ContractTermOfferParty] | None = Field(None, alias="party", serialization_alias="party") + security_label_number: PyList[int] | None = Field(None, alias="securityLabelNumber", serialization_alias="securityLabelNumber") + text: str | None = Field(None, alias="text", serialization_alias="text") + topic: Reference | None = Field(None, alias="topic", serialization_alias="topic") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class ContractTermOfferAnswer(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + value_attachment: Attachment | None = Field(None, alias="valueAttachment", serialization_alias="valueAttachment") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_coding: Coding | None = Field(None, alias="valueCoding", serialization_alias="valueCoding") + value_date: str | None = Field(None, alias="valueDate", serialization_alias="valueDate") + value_date_time: str | None = Field(None, alias="valueDateTime", serialization_alias="valueDateTime") + value_decimal: float | None = Field(None, alias="valueDecimal", serialization_alias="valueDecimal") + value_integer: int | None = Field(None, alias="valueInteger", serialization_alias="valueInteger") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_reference: Reference | None = Field(None, alias="valueReference", serialization_alias="valueReference") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + value_time: str | None = Field(None, alias="valueTime", serialization_alias="valueTime") + value_uri: str | None = Field(None, alias="valueUri", serialization_alias="valueUri") + +class ContractTermOfferParty(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + reference: PyList[Reference] = Field(alias="reference", serialization_alias="reference") + role: CodeableConcept = Field(alias="role", serialization_alias="role") + +class ContractTermSecurityLabel(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + category: PyList[Coding] | None = Field(None, alias="category", serialization_alias="category") + classification: Coding = Field(alias="classification", serialization_alias="classification") + control: PyList[Coding] | None = Field(None, alias="control", serialization_alias="control") + number: PyList[int] | None = Field(None, alias="number", serialization_alias="number") + + +class Contract(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Contract', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Contract' + ) + alias: PyList[str] | None = Field(None, alias="alias", serialization_alias="alias") + applies: Period | None = Field(None, alias="applies", serialization_alias="applies") + author: Reference | None = Field(None, alias="author", serialization_alias="author") + authority: PyList[Reference] | None = Field(None, alias="authority", serialization_alias="authority") + content_definition: ContractContentDefinition | None = Field(None, alias="contentDefinition", serialization_alias="contentDefinition") + content_derivative: CodeableConcept | None = Field(None, alias="contentDerivative", serialization_alias="contentDerivative") + domain: PyList[Reference] | None = Field(None, alias="domain", serialization_alias="domain") + expiration_type: CodeableConcept | None = Field(None, alias="expirationType", serialization_alias="expirationType") + friendly: PyList[ContractFriendly] | None = Field(None, alias="friendly", serialization_alias="friendly") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + instantiates_canonical: Reference | None = Field(None, alias="instantiatesCanonical", serialization_alias="instantiatesCanonical") + instantiates_uri: str | None = Field(None, alias="instantiatesUri", serialization_alias="instantiatesUri") + issued: str | None = Field(None, alias="issued", serialization_alias="issued") + legal: PyList[ContractLegal] | None = Field(None, alias="legal", serialization_alias="legal") + legally_binding_attachment: Attachment | None = Field(None, alias="legallyBindingAttachment", serialization_alias="legallyBindingAttachment") + legally_binding_reference: Reference | None = Field(None, alias="legallyBindingReference", serialization_alias="legallyBindingReference") + legal_state: CodeableConcept | None = Field(None, alias="legalState", serialization_alias="legalState") + name: str | None = Field(None, alias="name", serialization_alias="name") + relevant_history: PyList[Reference] | None = Field(None, alias="relevantHistory", serialization_alias="relevantHistory") + rule: PyList[ContractRule] | None = Field(None, alias="rule", serialization_alias="rule") + scope: CodeableConcept | None = Field(None, alias="scope", serialization_alias="scope") + signer: PyList[ContractSigner] | None = Field(None, alias="signer", serialization_alias="signer") + site: PyList[Reference] | None = Field(None, alias="site", serialization_alias="site") + status: Literal["amended", "appended", "cancelled", "disputed", "entered-in-error", "executable", "executed", "negotiable", "offered", "policy", "rejected", "renewed", "revoked", "resolved", "terminated"] | None = Field(None, alias="status", serialization_alias="status") + subject: PyList[Reference] | None = Field(None, alias="subject", serialization_alias="subject") + subtitle: str | None = Field(None, alias="subtitle", serialization_alias="subtitle") + sub_type: PyList[CodeableConcept] | None = Field(None, alias="subType", serialization_alias="subType") + supporting_info: PyList[Reference] | None = Field(None, alias="supportingInfo", serialization_alias="supportingInfo") + term: PyList[ContractTerm] | None = Field(None, alias="term", serialization_alias="term") + title: str | None = Field(None, alias="title", serialization_alias="title") + topic_codeable_concept: CodeableConcept | None = Field(None, alias="topicCodeableConcept", serialization_alias="topicCodeableConcept") + topic_reference: Reference | None = Field(None, alias="topicReference", serialization_alias="topicReference") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + url: str | None = Field(None, alias="url", serialization_alias="url") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Contract: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/coverage.py b/examples/python/generated/hl7_fhir_r4_core/coverage.py new file mode 100644 index 000000000..a4a8cb03b --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/coverage.py @@ -0,0 +1,68 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Money, Period, Quantity, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class CoverageClass(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + name: str | None = Field(None, alias="name", serialization_alias="name") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + value: str = Field(alias="value", serialization_alias="value") + +class CoverageCostToBeneficiary(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + exception: PyList[CoverageCostToBeneficiaryException] | None = Field(None, alias="exception", serialization_alias="exception") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + value_money: Money | None = Field(None, alias="valueMoney", serialization_alias="valueMoney") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + +class CoverageCostToBeneficiaryException(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + period: Period | None = Field(None, alias="period", serialization_alias="period") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + + +class Coverage(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Coverage', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Coverage' + ) + beneficiary: Reference = Field(alias="beneficiary", serialization_alias="beneficiary") + class_: PyList[CoverageClass] | None = Field(None, alias="class", serialization_alias="class") + contract: PyList[Reference] | None = Field(None, alias="contract", serialization_alias="contract") + cost_to_beneficiary: PyList[CoverageCostToBeneficiary] | None = Field(None, alias="costToBeneficiary", serialization_alias="costToBeneficiary") + dependent: str | None = Field(None, alias="dependent", serialization_alias="dependent") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + network: str | None = Field(None, alias="network", serialization_alias="network") + order: PositiveInt | None = Field(None, alias="order", serialization_alias="order") + payor: PyList[Reference] = Field(alias="payor", serialization_alias="payor") + period: Period | None = Field(None, alias="period", serialization_alias="period") + policy_holder: Reference | None = Field(None, alias="policyHolder", serialization_alias="policyHolder") + relationship: CodeableConcept | None = Field(None, alias="relationship", serialization_alias="relationship") + status: Literal["active", "cancelled", "draft", "entered-in-error"] = Field(alias="status", serialization_alias="status") + subrogation: bool | None = Field(None, alias="subrogation", serialization_alias="subrogation") + subscriber: Reference | None = Field(None, alias="subscriber", serialization_alias="subscriber") + subscriber_id: str | None = Field(None, alias="subscriberId", serialization_alias="subscriberId") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Coverage: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/coverage_eligibility_request.py b/examples/python/generated/hl7_fhir_r4_core/coverage_eligibility_request.py new file mode 100644 index 000000000..e83a21f6b --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/coverage_eligibility_request.py @@ -0,0 +1,78 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Money, Period, Quantity, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class CoverageEligibilityRequestInsurance(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + business_arrangement: str | None = Field(None, alias="businessArrangement", serialization_alias="businessArrangement") + coverage: Reference = Field(alias="coverage", serialization_alias="coverage") + focal: bool | None = Field(None, alias="focal", serialization_alias="focal") + +class CoverageEligibilityRequestItem(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + category: CodeableConcept | None = Field(None, alias="category", serialization_alias="category") + detail: PyList[Reference] | None = Field(None, alias="detail", serialization_alias="detail") + diagnosis: PyList[CoverageEligibilityRequestItemDiagnosis] | None = Field(None, alias="diagnosis", serialization_alias="diagnosis") + facility: Reference | None = Field(None, alias="facility", serialization_alias="facility") + modifier: PyList[CodeableConcept] | None = Field(None, alias="modifier", serialization_alias="modifier") + product_or_service: CodeableConcept | None = Field(None, alias="productOrService", serialization_alias="productOrService") + provider: Reference | None = Field(None, alias="provider", serialization_alias="provider") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + supporting_info_sequence: PyList[PositiveInt] | None = Field(None, alias="supportingInfoSequence", serialization_alias="supportingInfoSequence") + unit_price: Money | None = Field(None, alias="unitPrice", serialization_alias="unitPrice") + +class CoverageEligibilityRequestItemDiagnosis(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + diagnosis_codeable_concept: CodeableConcept | None = Field(None, alias="diagnosisCodeableConcept", serialization_alias="diagnosisCodeableConcept") + diagnosis_reference: Reference | None = Field(None, alias="diagnosisReference", serialization_alias="diagnosisReference") + +class CoverageEligibilityRequestSupportingInfo(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + applies_to_all: bool | None = Field(None, alias="appliesToAll", serialization_alias="appliesToAll") + information: Reference = Field(alias="information", serialization_alias="information") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + + +class CoverageEligibilityRequest(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='CoverageEligibilityRequest', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='CoverageEligibilityRequest' + ) + created: str = Field(alias="created", serialization_alias="created") + enterer: Reference | None = Field(None, alias="enterer", serialization_alias="enterer") + facility: Reference | None = Field(None, alias="facility", serialization_alias="facility") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + insurance: PyList[CoverageEligibilityRequestInsurance] | None = Field(None, alias="insurance", serialization_alias="insurance") + insurer: Reference = Field(alias="insurer", serialization_alias="insurer") + item: PyList[CoverageEligibilityRequestItem] | None = Field(None, alias="item", serialization_alias="item") + patient: Reference = Field(alias="patient", serialization_alias="patient") + priority: CodeableConcept | None = Field(None, alias="priority", serialization_alias="priority") + provider: Reference | None = Field(None, alias="provider", serialization_alias="provider") + purpose: PyList[Literal["auth-requirements", "benefits", "discovery", "validation"]] = Field(alias="purpose", serialization_alias="purpose") + serviced_date: str | None = Field(None, alias="servicedDate", serialization_alias="servicedDate") + serviced_period: Period | None = Field(None, alias="servicedPeriod", serialization_alias="servicedPeriod") + status: Literal["active", "cancelled", "draft", "entered-in-error"] = Field(alias="status", serialization_alias="status") + supporting_info: PyList[CoverageEligibilityRequestSupportingInfo] | None = Field(None, alias="supportingInfo", serialization_alias="supportingInfo") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> CoverageEligibilityRequest: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/coverage_eligibility_response.py b/examples/python/generated/hl7_fhir_r4_core/coverage_eligibility_response.py new file mode 100644 index 000000000..3ed6d4f4c --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/coverage_eligibility_response.py @@ -0,0 +1,87 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Money, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class CoverageEligibilityResponseError(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + +class CoverageEligibilityResponseInsurance(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + benefit_period: Period | None = Field(None, alias="benefitPeriod", serialization_alias="benefitPeriod") + coverage: Reference = Field(alias="coverage", serialization_alias="coverage") + inforce: bool | None = Field(None, alias="inforce", serialization_alias="inforce") + item: PyList[CoverageEligibilityResponseInsuranceItem] | None = Field(None, alias="item", serialization_alias="item") + +class CoverageEligibilityResponseInsuranceItem(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + authorization_required: bool | None = Field(None, alias="authorizationRequired", serialization_alias="authorizationRequired") + authorization_supporting: PyList[CodeableConcept] | None = Field(None, alias="authorizationSupporting", serialization_alias="authorizationSupporting") + authorization_url: str | None = Field(None, alias="authorizationUrl", serialization_alias="authorizationUrl") + benefit: PyList[CoverageEligibilityResponseInsuranceItemBenefit] | None = Field(None, alias="benefit", serialization_alias="benefit") + category: CodeableConcept | None = Field(None, alias="category", serialization_alias="category") + description: str | None = Field(None, alias="description", serialization_alias="description") + excluded: bool | None = Field(None, alias="excluded", serialization_alias="excluded") + modifier: PyList[CodeableConcept] | None = Field(None, alias="modifier", serialization_alias="modifier") + name: str | None = Field(None, alias="name", serialization_alias="name") + network: CodeableConcept | None = Field(None, alias="network", serialization_alias="network") + product_or_service: CodeableConcept | None = Field(None, alias="productOrService", serialization_alias="productOrService") + provider: Reference | None = Field(None, alias="provider", serialization_alias="provider") + term: CodeableConcept | None = Field(None, alias="term", serialization_alias="term") + unit: CodeableConcept | None = Field(None, alias="unit", serialization_alias="unit") + +class CoverageEligibilityResponseInsuranceItemBenefit(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + allowed_money: Money | None = Field(None, alias="allowedMoney", serialization_alias="allowedMoney") + allowed_string: str | None = Field(None, alias="allowedString", serialization_alias="allowedString") + allowed_unsigned_int: int | None = Field(None, alias="allowedUnsignedInt", serialization_alias="allowedUnsignedInt") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + used_money: Money | None = Field(None, alias="usedMoney", serialization_alias="usedMoney") + used_string: str | None = Field(None, alias="usedString", serialization_alias="usedString") + used_unsigned_int: int | None = Field(None, alias="usedUnsignedInt", serialization_alias="usedUnsignedInt") + + +class CoverageEligibilityResponse(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='CoverageEligibilityResponse', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='CoverageEligibilityResponse' + ) + created: str = Field(alias="created", serialization_alias="created") + disposition: str | None = Field(None, alias="disposition", serialization_alias="disposition") + error: PyList[CoverageEligibilityResponseError] | None = Field(None, alias="error", serialization_alias="error") + form: CodeableConcept | None = Field(None, alias="form", serialization_alias="form") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + insurance: PyList[CoverageEligibilityResponseInsurance] | None = Field(None, alias="insurance", serialization_alias="insurance") + insurer: Reference = Field(alias="insurer", serialization_alias="insurer") + outcome: Literal["queued", "complete", "error", "partial"] = Field(alias="outcome", serialization_alias="outcome") + patient: Reference = Field(alias="patient", serialization_alias="patient") + pre_auth_ref: str | None = Field(None, alias="preAuthRef", serialization_alias="preAuthRef") + purpose: PyList[Literal["auth-requirements", "benefits", "discovery", "validation"]] = Field(alias="purpose", serialization_alias="purpose") + request: Reference = Field(alias="request", serialization_alias="request") + requestor: Reference | None = Field(None, alias="requestor", serialization_alias="requestor") + serviced_date: str | None = Field(None, alias="servicedDate", serialization_alias="servicedDate") + serviced_period: Period | None = Field(None, alias="servicedPeriod", serialization_alias="servicedPeriod") + status: Literal["active", "cancelled", "draft", "entered-in-error"] = Field(alias="status", serialization_alias="status") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> CoverageEligibilityResponse: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/detected_issue.py b/examples/python/generated/hl7_fhir_r4_core/detected_issue.py new file mode 100644 index 000000000..c20eaeada --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/detected_issue.py @@ -0,0 +1,57 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class DetectedIssueEvidence(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: PyList[CodeableConcept] | None = Field(None, alias="code", serialization_alias="code") + detail: PyList[Reference] | None = Field(None, alias="detail", serialization_alias="detail") + +class DetectedIssueMitigation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + action: CodeableConcept = Field(alias="action", serialization_alias="action") + author: Reference | None = Field(None, alias="author", serialization_alias="author") + date: str | None = Field(None, alias="date", serialization_alias="date") + + +class DetectedIssue(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='DetectedIssue', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='DetectedIssue' + ) + author: Reference | None = Field(None, alias="author", serialization_alias="author") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + detail: str | None = Field(None, alias="detail", serialization_alias="detail") + evidence: PyList[DetectedIssueEvidence] | None = Field(None, alias="evidence", serialization_alias="evidence") + identified_date_time: str | None = Field(None, alias="identifiedDateTime", serialization_alias="identifiedDateTime") + identified_period: Period | None = Field(None, alias="identifiedPeriod", serialization_alias="identifiedPeriod") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + implicated: PyList[Reference] | None = Field(None, alias="implicated", serialization_alias="implicated") + mitigation: PyList[DetectedIssueMitigation] | None = Field(None, alias="mitigation", serialization_alias="mitigation") + patient: Reference | None = Field(None, alias="patient", serialization_alias="patient") + reference: str | None = Field(None, alias="reference", serialization_alias="reference") + severity: Literal["high", "moderate", "low"] | None = Field(None, alias="severity", serialization_alias="severity") + status: Literal["registered", "preliminary", "final", "amended", "corrected", "cancelled", "entered-in-error", "unknown"] = Field(alias="status", serialization_alias="status") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> DetectedIssue: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/device.py b/examples/python/generated/hl7_fhir_r4_core/device.py new file mode 100644 index 000000000..965d88d59 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/device.py @@ -0,0 +1,90 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, ContactPoint, Identifier, Quantity, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class DeviceDeviceName(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + name: str = Field(alias="name", serialization_alias="name") + type: Literal["udi-label-name", "user-friendly-name", "patient-reported-name", "manufacturer-name", "model-name", "other"] = Field(alias="type", serialization_alias="type") + +class DeviceProperty(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + value_code: PyList[CodeableConcept] | None = Field(None, alias="valueCode", serialization_alias="valueCode") + value_quantity: PyList[Quantity] | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + +class DeviceSpecialization(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + system_type: CodeableConcept = Field(alias="systemType", serialization_alias="systemType") + version: str | None = Field(None, alias="version", serialization_alias="version") + +class DeviceUdiCarrier(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + carrier_aidc: str | None = Field(None, alias="carrierAIDC", serialization_alias="carrierAIDC") + carrier_hrf: str | None = Field(None, alias="carrierHRF", serialization_alias="carrierHRF") + device_identifier: str | None = Field(None, alias="deviceIdentifier", serialization_alias="deviceIdentifier") + entry_type: Literal["barcode", "rfid", "manual", "card", "self-reported", "unknown"] | None = Field(None, alias="entryType", serialization_alias="entryType") + issuer: str | None = Field(None, alias="issuer", serialization_alias="issuer") + jurisdiction: str | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + +class DeviceVersion(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + component: Identifier | None = Field(None, alias="component", serialization_alias="component") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + value: str = Field(alias="value", serialization_alias="value") + + +class Device(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Device', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Device' + ) + contact: PyList[ContactPoint] | None = Field(None, alias="contact", serialization_alias="contact") + definition: Reference | None = Field(None, alias="definition", serialization_alias="definition") + device_name: PyList[DeviceDeviceName] | None = Field(None, alias="deviceName", serialization_alias="deviceName") + distinct_identifier: str | None = Field(None, alias="distinctIdentifier", serialization_alias="distinctIdentifier") + expiration_date: str | None = Field(None, alias="expirationDate", serialization_alias="expirationDate") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + location: Reference | None = Field(None, alias="location", serialization_alias="location") + lot_number: str | None = Field(None, alias="lotNumber", serialization_alias="lotNumber") + manufacture_date: str | None = Field(None, alias="manufactureDate", serialization_alias="manufactureDate") + manufacturer: str | None = Field(None, alias="manufacturer", serialization_alias="manufacturer") + model_number: str | None = Field(None, alias="modelNumber", serialization_alias="modelNumber") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + owner: Reference | None = Field(None, alias="owner", serialization_alias="owner") + parent: Reference | None = Field(None, alias="parent", serialization_alias="parent") + part_number: str | None = Field(None, alias="partNumber", serialization_alias="partNumber") + patient: Reference | None = Field(None, alias="patient", serialization_alias="patient") + property: PyList[DeviceProperty] | None = Field(None, alias="property", serialization_alias="property") + safety: PyList[CodeableConcept] | None = Field(None, alias="safety", serialization_alias="safety") + serial_number: str | None = Field(None, alias="serialNumber", serialization_alias="serialNumber") + specialization: PyList[DeviceSpecialization] | None = Field(None, alias="specialization", serialization_alias="specialization") + status: Literal["active", "inactive", "entered-in-error", "unknown"] | None = Field(None, alias="status", serialization_alias="status") + status_reason: PyList[CodeableConcept] | None = Field(None, alias="statusReason", serialization_alias="statusReason") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + udi_carrier: PyList[DeviceUdiCarrier] | None = Field(None, alias="udiCarrier", serialization_alias="udiCarrier") + url: str | None = Field(None, alias="url", serialization_alias="url") + version: PyList[DeviceVersion] | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Device: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/device_definition.py b/examples/python/generated/hl7_fhir_r4_core/device_definition.py new file mode 100644 index 000000000..916dfa060 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/device_definition.py @@ -0,0 +1,90 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, ContactPoint, Identifier, ProdCharacteristic, ProductShelfLife, \ + Quantity, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class DeviceDefinitionCapability(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: PyList[CodeableConcept] | None = Field(None, alias="description", serialization_alias="description") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + +class DeviceDefinitionDeviceName(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + name: str = Field(alias="name", serialization_alias="name") + type: Literal["udi-label-name", "user-friendly-name", "patient-reported-name", "manufacturer-name", "model-name", "other"] = Field(alias="type", serialization_alias="type") + +class DeviceDefinitionMaterial(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + allergenic_indicator: bool | None = Field(None, alias="allergenicIndicator", serialization_alias="allergenicIndicator") + alternate: bool | None = Field(None, alias="alternate", serialization_alias="alternate") + substance: CodeableConcept = Field(alias="substance", serialization_alias="substance") + +class DeviceDefinitionProperty(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + value_code: PyList[CodeableConcept] | None = Field(None, alias="valueCode", serialization_alias="valueCode") + value_quantity: PyList[Quantity] | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + +class DeviceDefinitionSpecialization(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + system_type: str = Field(alias="systemType", serialization_alias="systemType") + version: str | None = Field(None, alias="version", serialization_alias="version") + +class DeviceDefinitionUdiDeviceIdentifier(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + device_identifier: str = Field(alias="deviceIdentifier", serialization_alias="deviceIdentifier") + issuer: str = Field(alias="issuer", serialization_alias="issuer") + jurisdiction: str = Field(alias="jurisdiction", serialization_alias="jurisdiction") + + +class DeviceDefinition(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='DeviceDefinition', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='DeviceDefinition' + ) + capability: PyList[DeviceDefinitionCapability] | None = Field(None, alias="capability", serialization_alias="capability") + contact: PyList[ContactPoint] | None = Field(None, alias="contact", serialization_alias="contact") + device_name: PyList[DeviceDefinitionDeviceName] | None = Field(None, alias="deviceName", serialization_alias="deviceName") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + language_code: PyList[CodeableConcept] | None = Field(None, alias="languageCode", serialization_alias="languageCode") + manufacturer_reference: Reference | None = Field(None, alias="manufacturerReference", serialization_alias="manufacturerReference") + manufacturer_string: str | None = Field(None, alias="manufacturerString", serialization_alias="manufacturerString") + material: PyList[DeviceDefinitionMaterial] | None = Field(None, alias="material", serialization_alias="material") + model_number: str | None = Field(None, alias="modelNumber", serialization_alias="modelNumber") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + online_information: str | None = Field(None, alias="onlineInformation", serialization_alias="onlineInformation") + owner: Reference | None = Field(None, alias="owner", serialization_alias="owner") + parent_device: Reference | None = Field(None, alias="parentDevice", serialization_alias="parentDevice") + physical_characteristics: ProdCharacteristic | None = Field(None, alias="physicalCharacteristics", serialization_alias="physicalCharacteristics") + property: PyList[DeviceDefinitionProperty] | None = Field(None, alias="property", serialization_alias="property") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + safety: PyList[CodeableConcept] | None = Field(None, alias="safety", serialization_alias="safety") + shelf_life_storage: PyList[ProductShelfLife] | None = Field(None, alias="shelfLifeStorage", serialization_alias="shelfLifeStorage") + specialization: PyList[DeviceDefinitionSpecialization] | None = Field(None, alias="specialization", serialization_alias="specialization") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + udi_device_identifier: PyList[DeviceDefinitionUdiDeviceIdentifier] | None = Field(None, alias="udiDeviceIdentifier", serialization_alias="udiDeviceIdentifier") + url: str | None = Field(None, alias="url", serialization_alias="url") + version: PyList[str] | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> DeviceDefinition: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/device_metric.py b/examples/python/generated/hl7_fhir_r4_core/device_metric.py new file mode 100644 index 000000000..2983da1ef --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/device_metric.py @@ -0,0 +1,49 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Reference, Timing +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class DeviceMetricCalibration(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + state: Literal["not-calibrated", "calibration-required", "calibrated", "unspecified"] | None = Field(None, alias="state", serialization_alias="state") + time: str | None = Field(None, alias="time", serialization_alias="time") + type: Literal["unspecified", "offset", "gain", "two-point"] | None = Field(None, alias="type", serialization_alias="type") + + +class DeviceMetric(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='DeviceMetric', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='DeviceMetric' + ) + calibration: PyList[DeviceMetricCalibration] | None = Field(None, alias="calibration", serialization_alias="calibration") + category: Literal["measurement", "setting", "calculation", "unspecified"] = Field(alias="category", serialization_alias="category") + color: Literal["black", "red", "green", "yellow", "blue", "magenta", "cyan", "white"] | None = Field(None, alias="color", serialization_alias="color") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + measurement_period: Timing | None = Field(None, alias="measurementPeriod", serialization_alias="measurementPeriod") + operational_status: Literal["on", "off", "standby", "entered-in-error"] | None = Field(None, alias="operationalStatus", serialization_alias="operationalStatus") + parent: Reference | None = Field(None, alias="parent", serialization_alias="parent") + source: Reference | None = Field(None, alias="source", serialization_alias="source") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + unit: CodeableConcept | None = Field(None, alias="unit", serialization_alias="unit") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> DeviceMetric: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/device_request.py b/examples/python/generated/hl7_fhir_r4_core/device_request.py new file mode 100644 index 000000000..acdb6c4ce --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/device_request.py @@ -0,0 +1,68 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Identifier, Period, Quantity, Range, Reference, Timing +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class DeviceRequestParameter(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_codeable_concept: CodeableConcept | None = Field(None, alias="valueCodeableConcept", serialization_alias="valueCodeableConcept") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_range: Range | None = Field(None, alias="valueRange", serialization_alias="valueRange") + + +class DeviceRequest(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='DeviceRequest', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='DeviceRequest' + ) + authored_on: str | None = Field(None, alias="authoredOn", serialization_alias="authoredOn") + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + code_codeable_concept: CodeableConcept | None = Field(None, alias="codeCodeableConcept", serialization_alias="codeCodeableConcept") + code_reference: Reference | None = Field(None, alias="codeReference", serialization_alias="codeReference") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + group_identifier: Identifier | None = Field(None, alias="groupIdentifier", serialization_alias="groupIdentifier") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + instantiates_canonical: PyList[str] | None = Field(None, alias="instantiatesCanonical", serialization_alias="instantiatesCanonical") + instantiates_uri: PyList[str] | None = Field(None, alias="instantiatesUri", serialization_alias="instantiatesUri") + insurance: PyList[Reference] | None = Field(None, alias="insurance", serialization_alias="insurance") + intent: Literal["proposal", "plan", "directive", "order", "original-order", "reflex-order", "filler-order", "instance-order", "option"] = Field(alias="intent", serialization_alias="intent") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + occurrence_date_time: str | None = Field(None, alias="occurrenceDateTime", serialization_alias="occurrenceDateTime") + occurrence_period: Period | None = Field(None, alias="occurrencePeriod", serialization_alias="occurrencePeriod") + occurrence_timing: Timing | None = Field(None, alias="occurrenceTiming", serialization_alias="occurrenceTiming") + parameter: PyList[DeviceRequestParameter] | None = Field(None, alias="parameter", serialization_alias="parameter") + performer: Reference | None = Field(None, alias="performer", serialization_alias="performer") + performer_type: CodeableConcept | None = Field(None, alias="performerType", serialization_alias="performerType") + priority: Literal["routine", "urgent", "asap", "stat"] | None = Field(None, alias="priority", serialization_alias="priority") + prior_request: PyList[Reference] | None = Field(None, alias="priorRequest", serialization_alias="priorRequest") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + relevant_history: PyList[Reference] | None = Field(None, alias="relevantHistory", serialization_alias="relevantHistory") + requester: Reference | None = Field(None, alias="requester", serialization_alias="requester") + status: Literal["draft", "active", "on-hold", "revoked", "completed", "entered-in-error", "unknown"] | None = Field(None, alias="status", serialization_alias="status") + subject: Reference = Field(alias="subject", serialization_alias="subject") + supporting_info: PyList[Reference] | None = Field(None, alias="supportingInfo", serialization_alias="supportingInfo") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> DeviceRequest: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/device_use_statement.py b/examples/python/generated/hl7_fhir_r4_core/device_use_statement.py new file mode 100644 index 000000000..13ecd6dff --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/device_use_statement.py @@ -0,0 +1,47 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, CodeableConcept, Identifier, Period, Reference, Timing +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class DeviceUseStatement(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='DeviceUseStatement', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='DeviceUseStatement' + ) + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + body_site: CodeableConcept | None = Field(None, alias="bodySite", serialization_alias="bodySite") + derived_from: PyList[Reference] | None = Field(None, alias="derivedFrom", serialization_alias="derivedFrom") + device: Reference = Field(alias="device", serialization_alias="device") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + recorded_on: str | None = Field(None, alias="recordedOn", serialization_alias="recordedOn") + source: Reference | None = Field(None, alias="source", serialization_alias="source") + status: Literal["active", "completed", "entered-in-error", "intended", "stopped", "on-hold"] = Field(alias="status", serialization_alias="status") + subject: Reference = Field(alias="subject", serialization_alias="subject") + timing_date_time: str | None = Field(None, alias="timingDateTime", serialization_alias="timingDateTime") + timing_period: Period | None = Field(None, alias="timingPeriod", serialization_alias="timingPeriod") + timing_timing: Timing | None = Field(None, alias="timingTiming", serialization_alias="timingTiming") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> DeviceUseStatement: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/diagnostic_report.py b/examples/python/generated/hl7_fhir_r4_core/diagnostic_report.py new file mode 100644 index 000000000..dbbd632bd --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/diagnostic_report.py @@ -0,0 +1,57 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Attachment, BackboneElement, CodeableConcept, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class DiagnosticReportMedia(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + link: Reference = Field(alias="link", serialization_alias="link") + + +class DiagnosticReport(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='DiagnosticReport', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='DiagnosticReport' + ) + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + conclusion: str | None = Field(None, alias="conclusion", serialization_alias="conclusion") + conclusion_code: PyList[CodeableConcept] | None = Field(None, alias="conclusionCode", serialization_alias="conclusionCode") + effective_date_time: str | None = Field(None, alias="effectiveDateTime", serialization_alias="effectiveDateTime") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + imaging_study: PyList[Reference] | None = Field(None, alias="imagingStudy", serialization_alias="imagingStudy") + issued: str | None = Field(None, alias="issued", serialization_alias="issued") + media: PyList[DiagnosticReportMedia] | None = Field(None, alias="media", serialization_alias="media") + performer: PyList[Reference] | None = Field(None, alias="performer", serialization_alias="performer") + presented_form: PyList[Attachment] | None = Field(None, alias="presentedForm", serialization_alias="presentedForm") + result: PyList[Reference] | None = Field(None, alias="result", serialization_alias="result") + results_interpreter: PyList[Reference] | None = Field(None, alias="resultsInterpreter", serialization_alias="resultsInterpreter") + specimen: PyList[Reference] | None = Field(None, alias="specimen", serialization_alias="specimen") + status: Literal["registered", "partial", "preliminary", "final", "amended", "corrected", "appended", "cancelled", "entered-in-error", "unknown"] = Field(alias="status", serialization_alias="status") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> DiagnosticReport: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/document_manifest.py b/examples/python/generated/hl7_fhir_r4_core/document_manifest.py new file mode 100644 index 000000000..fba6647b6 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/document_manifest.py @@ -0,0 +1,48 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import BackboneElement, CodeableConcept, Identifier, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class DocumentManifestRelated(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + ref: Reference | None = Field(None, alias="ref", serialization_alias="ref") + + +class DocumentManifest(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='DocumentManifest', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='DocumentManifest' + ) + author: PyList[Reference] | None = Field(None, alias="author", serialization_alias="author") + content: PyList[Reference] = Field(alias="content", serialization_alias="content") + created: str | None = Field(None, alias="created", serialization_alias="created") + description: str | None = Field(None, alias="description", serialization_alias="description") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + master_identifier: Identifier | None = Field(None, alias="masterIdentifier", serialization_alias="masterIdentifier") + recipient: PyList[Reference] | None = Field(None, alias="recipient", serialization_alias="recipient") + related: PyList[DocumentManifestRelated] | None = Field(None, alias="related", serialization_alias="related") + source: str | None = Field(None, alias="source", serialization_alias="source") + status: Literal["current", "superseded", "entered-in-error"] = Field(alias="status", serialization_alias="status") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> DocumentManifest: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/document_reference.py b/examples/python/generated/hl7_fhir_r4_core/document_reference.py new file mode 100644 index 000000000..df8f96f2a --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/document_reference.py @@ -0,0 +1,69 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Attachment, BackboneElement, CodeableConcept, Coding, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class DocumentReferenceContent(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + attachment: Attachment = Field(alias="attachment", serialization_alias="attachment") + format: Coding | None = Field(None, alias="format", serialization_alias="format") + +class DocumentReferenceContext(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + encounter: PyList[Reference] | None = Field(None, alias="encounter", serialization_alias="encounter") + event: PyList[CodeableConcept] | None = Field(None, alias="event", serialization_alias="event") + facility_type: CodeableConcept | None = Field(None, alias="facilityType", serialization_alias="facilityType") + period: Period | None = Field(None, alias="period", serialization_alias="period") + practice_setting: CodeableConcept | None = Field(None, alias="practiceSetting", serialization_alias="practiceSetting") + related: PyList[Reference] | None = Field(None, alias="related", serialization_alias="related") + source_patient_info: Reference | None = Field(None, alias="sourcePatientInfo", serialization_alias="sourcePatientInfo") + +class DocumentReferenceRelatesTo(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: Literal["replaces", "transforms", "signs", "appends"] = Field(alias="code", serialization_alias="code") + target: Reference = Field(alias="target", serialization_alias="target") + + +class DocumentReference(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='DocumentReference', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='DocumentReference' + ) + authenticator: Reference | None = Field(None, alias="authenticator", serialization_alias="authenticator") + author: PyList[Reference] | None = Field(None, alias="author", serialization_alias="author") + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + content: PyList[DocumentReferenceContent] = Field(alias="content", serialization_alias="content") + context: DocumentReferenceContext | None = Field(None, alias="context", serialization_alias="context") + custodian: Reference | None = Field(None, alias="custodian", serialization_alias="custodian") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + doc_status: Literal["preliminary", "final", "amended", "entered-in-error"] | None = Field(None, alias="docStatus", serialization_alias="docStatus") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + master_identifier: Identifier | None = Field(None, alias="masterIdentifier", serialization_alias="masterIdentifier") + relates_to: PyList[DocumentReferenceRelatesTo] | None = Field(None, alias="relatesTo", serialization_alias="relatesTo") + security_label: PyList[CodeableConcept] | None = Field(None, alias="securityLabel", serialization_alias="securityLabel") + status: Literal["current", "superseded", "entered-in-error"] = Field(alias="status", serialization_alias="status") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> DocumentReference: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/domain_resource.py b/examples/python/generated/hl7_fhir_r4_core/domain_resource.py new file mode 100644 index 000000000..4bef98961 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/domain_resource.py @@ -0,0 +1,34 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import Extension, Narrative +from generated.hl7_fhir_r4_core.resource import Resource +from generated.hl7_fhir_r4_core.resource_families import ResourceFamily + + +class DomainResource(Resource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='DomainResource', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='DomainResource' + ) + contained: PyList[ResourceFamily] | None = Field(None, alias="contained", serialization_alias="contained") + extension: PyList[Extension] | None = Field(None, alias="extension", serialization_alias="extension") + modifier_extension: PyList[Extension] | None = Field(None, alias="modifierExtension", serialization_alias="modifierExtension") + text: Narrative | None = Field(None, alias="text", serialization_alias="text") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> DomainResource: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/effect_evidence_synthesis.py b/examples/python/generated/hl7_fhir_r4_core/effect_evidence_synthesis.py new file mode 100644 index 000000000..4699ee603 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/effect_evidence_synthesis.py @@ -0,0 +1,108 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, ContactDetail, Identifier, Period, Reference, RelatedArtifact, \ + UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class EffectEvidenceSynthesisCertainty(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + certainty_subcomponent: PyList[EffectEvidenceSynthesisCertaintyCertaintySubcomponent] | None = Field(None, alias="certaintySubcomponent", serialization_alias="certaintySubcomponent") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + rating: PyList[CodeableConcept] | None = Field(None, alias="rating", serialization_alias="rating") + +class EffectEvidenceSynthesisCertaintyCertaintySubcomponent(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + rating: PyList[CodeableConcept] | None = Field(None, alias="rating", serialization_alias="rating") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class EffectEvidenceSynthesisEffectEstimate(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + precision_estimate: PyList[EffectEvidenceSynthesisEffectEstimatePrecisionEstimate] | None = Field(None, alias="precisionEstimate", serialization_alias="precisionEstimate") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + unit_of_measure: CodeableConcept | None = Field(None, alias="unitOfMeasure", serialization_alias="unitOfMeasure") + value: float | None = Field(None, alias="value", serialization_alias="value") + variant_state: CodeableConcept | None = Field(None, alias="variantState", serialization_alias="variantState") + +class EffectEvidenceSynthesisEffectEstimatePrecisionEstimate(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + from_: float | None = Field(None, alias="from", serialization_alias="from") + level: float | None = Field(None, alias="level", serialization_alias="level") + to: float | None = Field(None, alias="to", serialization_alias="to") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class EffectEvidenceSynthesisResultsByExposure(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + exposure_state: Literal["exposure", "exposure-alternative"] | None = Field(None, alias="exposureState", serialization_alias="exposureState") + risk_evidence_synthesis: Reference = Field(alias="riskEvidenceSynthesis", serialization_alias="riskEvidenceSynthesis") + variant_state: CodeableConcept | None = Field(None, alias="variantState", serialization_alias="variantState") + +class EffectEvidenceSynthesisSampleSize(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + number_of_participants: int | None = Field(None, alias="numberOfParticipants", serialization_alias="numberOfParticipants") + number_of_studies: int | None = Field(None, alias="numberOfStudies", serialization_alias="numberOfStudies") + + +class EffectEvidenceSynthesis(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='EffectEvidenceSynthesis', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='EffectEvidenceSynthesis' + ) + approval_date: str | None = Field(None, alias="approvalDate", serialization_alias="approvalDate") + author: PyList[ContactDetail] | None = Field(None, alias="author", serialization_alias="author") + certainty: PyList[EffectEvidenceSynthesisCertainty] | None = Field(None, alias="certainty", serialization_alias="certainty") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + editor: PyList[ContactDetail] | None = Field(None, alias="editor", serialization_alias="editor") + effect_estimate: PyList[EffectEvidenceSynthesisEffectEstimate] | None = Field(None, alias="effectEstimate", serialization_alias="effectEstimate") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + endorser: PyList[ContactDetail] | None = Field(None, alias="endorser", serialization_alias="endorser") + exposure: Reference = Field(alias="exposure", serialization_alias="exposure") + exposure_alternative: Reference = Field(alias="exposureAlternative", serialization_alias="exposureAlternative") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + last_review_date: str | None = Field(None, alias="lastReviewDate", serialization_alias="lastReviewDate") + name: str | None = Field(None, alias="name", serialization_alias="name") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + outcome: Reference = Field(alias="outcome", serialization_alias="outcome") + population: Reference = Field(alias="population", serialization_alias="population") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + related_artifact: PyList[RelatedArtifact] | None = Field(None, alias="relatedArtifact", serialization_alias="relatedArtifact") + results_by_exposure: PyList[EffectEvidenceSynthesisResultsByExposure] | None = Field(None, alias="resultsByExposure", serialization_alias="resultsByExposure") + reviewer: PyList[ContactDetail] | None = Field(None, alias="reviewer", serialization_alias="reviewer") + sample_size: EffectEvidenceSynthesisSampleSize | None = Field(None, alias="sampleSize", serialization_alias="sampleSize") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + study_type: CodeableConcept | None = Field(None, alias="studyType", serialization_alias="studyType") + synthesis_type: CodeableConcept | None = Field(None, alias="synthesisType", serialization_alias="synthesisType") + title: str | None = Field(None, alias="title", serialization_alias="title") + topic: PyList[CodeableConcept] | None = Field(None, alias="topic", serialization_alias="topic") + url: str | None = Field(None, alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> EffectEvidenceSynthesis: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/encounter.py b/examples/python/generated/hl7_fhir_r4_core/encounter.py new file mode 100644 index 000000000..0f164cf18 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/encounter.py @@ -0,0 +1,97 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Coding, Duration, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class EncounterClassHistory(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + class_: Coding = Field(alias="class", serialization_alias="class") + period: Period = Field(alias="period", serialization_alias="period") + +class EncounterDiagnosis(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + condition: Reference = Field(alias="condition", serialization_alias="condition") + rank: PositiveInt | None = Field(None, alias="rank", serialization_alias="rank") + use: CodeableConcept | None = Field(None, alias="use", serialization_alias="use") + +class EncounterHospitalization(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + admit_source: CodeableConcept | None = Field(None, alias="admitSource", serialization_alias="admitSource") + destination: Reference | None = Field(None, alias="destination", serialization_alias="destination") + diet_preference: PyList[CodeableConcept] | None = Field(None, alias="dietPreference", serialization_alias="dietPreference") + discharge_disposition: CodeableConcept | None = Field(None, alias="dischargeDisposition", serialization_alias="dischargeDisposition") + origin: Reference | None = Field(None, alias="origin", serialization_alias="origin") + pre_admission_identifier: Identifier | None = Field(None, alias="preAdmissionIdentifier", serialization_alias="preAdmissionIdentifier") + re_admission: CodeableConcept | None = Field(None, alias="reAdmission", serialization_alias="reAdmission") + special_arrangement: PyList[CodeableConcept] | None = Field(None, alias="specialArrangement", serialization_alias="specialArrangement") + special_courtesy: PyList[CodeableConcept] | None = Field(None, alias="specialCourtesy", serialization_alias="specialCourtesy") + +class EncounterLocation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + location: Reference = Field(alias="location", serialization_alias="location") + period: Period | None = Field(None, alias="period", serialization_alias="period") + physical_type: CodeableConcept | None = Field(None, alias="physicalType", serialization_alias="physicalType") + status: Literal["planned", "active", "reserved", "completed"] | None = Field(None, alias="status", serialization_alias="status") + +class EncounterParticipant(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + individual: Reference | None = Field(None, alias="individual", serialization_alias="individual") + period: Period | None = Field(None, alias="period", serialization_alias="period") + type: PyList[CodeableConcept] | None = Field(None, alias="type", serialization_alias="type") + +class EncounterStatusHistory(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + period: Period = Field(alias="period", serialization_alias="period") + status: Literal["planned", "arrived", "triaged", "in-progress", "onleave", "finished", "cancelled", "entered-in-error", "unknown"] = Field(alias="status", serialization_alias="status") + + +class Encounter(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Encounter', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Encounter' + ) + account: PyList[Reference] | None = Field(None, alias="account", serialization_alias="account") + appointment: PyList[Reference] | None = Field(None, alias="appointment", serialization_alias="appointment") + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + class_: Coding = Field(alias="class", serialization_alias="class") + class_history: PyList[EncounterClassHistory] | None = Field(None, alias="classHistory", serialization_alias="classHistory") + diagnosis: PyList[EncounterDiagnosis] | None = Field(None, alias="diagnosis", serialization_alias="diagnosis") + episode_of_care: PyList[Reference] | None = Field(None, alias="episodeOfCare", serialization_alias="episodeOfCare") + hospitalization: EncounterHospitalization | None = Field(None, alias="hospitalization", serialization_alias="hospitalization") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + length: Duration | None = Field(None, alias="length", serialization_alias="length") + location: PyList[EncounterLocation] | None = Field(None, alias="location", serialization_alias="location") + participant: PyList[EncounterParticipant] | None = Field(None, alias="participant", serialization_alias="participant") + part_of: Reference | None = Field(None, alias="partOf", serialization_alias="partOf") + period: Period | None = Field(None, alias="period", serialization_alias="period") + priority: CodeableConcept | None = Field(None, alias="priority", serialization_alias="priority") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + service_provider: Reference | None = Field(None, alias="serviceProvider", serialization_alias="serviceProvider") + service_type: CodeableConcept | None = Field(None, alias="serviceType", serialization_alias="serviceType") + status: Literal["planned", "arrived", "triaged", "in-progress", "onleave", "finished", "cancelled", "entered-in-error", "unknown"] = Field(alias="status", serialization_alias="status") + status_history: PyList[EncounterStatusHistory] | None = Field(None, alias="statusHistory", serialization_alias="statusHistory") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + type: PyList[CodeableConcept] | None = Field(None, alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Encounter: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/endpoint.py b/examples/python/generated/hl7_fhir_r4_core/endpoint.py new file mode 100644 index 000000000..e14110e1e --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/endpoint.py @@ -0,0 +1,43 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + CodeableConcept, Coding, ContactPoint, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class Endpoint(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Endpoint', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Endpoint' + ) + address: str = Field(alias="address", serialization_alias="address") + connection_type: Coding = Field(alias="connectionType", serialization_alias="connectionType") + contact: PyList[ContactPoint] | None = Field(None, alias="contact", serialization_alias="contact") + header: PyList[str] | None = Field(None, alias="header", serialization_alias="header") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + managing_organization: Reference | None = Field(None, alias="managingOrganization", serialization_alias="managingOrganization") + name: str | None = Field(None, alias="name", serialization_alias="name") + payload_mime_type: PyList[str] | None = Field(None, alias="payloadMimeType", serialization_alias="payloadMimeType") + payload_type: PyList[CodeableConcept] = Field(alias="payloadType", serialization_alias="payloadType") + period: Period | None = Field(None, alias="period", serialization_alias="period") + status: Literal["active", "suspended", "error", "off", "entered-in-error", "test"] = Field(alias="status", serialization_alias="status") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Endpoint: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/enrollment_request.py b/examples/python/generated/hl7_fhir_r4_core/enrollment_request.py new file mode 100644 index 000000000..33e0b2b69 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/enrollment_request.py @@ -0,0 +1,37 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import Identifier, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class EnrollmentRequest(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='EnrollmentRequest', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='EnrollmentRequest' + ) + candidate: Reference | None = Field(None, alias="candidate", serialization_alias="candidate") + coverage: Reference | None = Field(None, alias="coverage", serialization_alias="coverage") + created: str | None = Field(None, alias="created", serialization_alias="created") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + insurer: Reference | None = Field(None, alias="insurer", serialization_alias="insurer") + provider: Reference | None = Field(None, alias="provider", serialization_alias="provider") + status: Literal["active", "cancelled", "draft", "entered-in-error"] | None = Field(None, alias="status", serialization_alias="status") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> EnrollmentRequest: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/enrollment_response.py b/examples/python/generated/hl7_fhir_r4_core/enrollment_response.py new file mode 100644 index 000000000..fd61c3e1e --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/enrollment_response.py @@ -0,0 +1,38 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import Identifier, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class EnrollmentResponse(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='EnrollmentResponse', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='EnrollmentResponse' + ) + created: str | None = Field(None, alias="created", serialization_alias="created") + disposition: str | None = Field(None, alias="disposition", serialization_alias="disposition") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + organization: Reference | None = Field(None, alias="organization", serialization_alias="organization") + outcome: Literal["queued", "complete", "error", "partial"] | None = Field(None, alias="outcome", serialization_alias="outcome") + request: Reference | None = Field(None, alias="request", serialization_alias="request") + request_provider: Reference | None = Field(None, alias="requestProvider", serialization_alias="requestProvider") + status: Literal["active", "cancelled", "draft", "entered-in-error"] | None = Field(None, alias="status", serialization_alias="status") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> EnrollmentResponse: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/episode_of_care.py b/examples/python/generated/hl7_fhir_r4_core/episode_of_care.py new file mode 100644 index 000000000..afb4c8efa --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/episode_of_care.py @@ -0,0 +1,56 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class EpisodeOfCareDiagnosis(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + condition: Reference = Field(alias="condition", serialization_alias="condition") + rank: PositiveInt | None = Field(None, alias="rank", serialization_alias="rank") + role: CodeableConcept | None = Field(None, alias="role", serialization_alias="role") + +class EpisodeOfCareStatusHistory(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + period: Period = Field(alias="period", serialization_alias="period") + status: Literal["planned", "waitlist", "active", "onhold", "finished", "cancelled", "entered-in-error"] = Field(alias="status", serialization_alias="status") + + +class EpisodeOfCare(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='EpisodeOfCare', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='EpisodeOfCare' + ) + account: PyList[Reference] | None = Field(None, alias="account", serialization_alias="account") + care_manager: Reference | None = Field(None, alias="careManager", serialization_alias="careManager") + diagnosis: PyList[EpisodeOfCareDiagnosis] | None = Field(None, alias="diagnosis", serialization_alias="diagnosis") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + managing_organization: Reference | None = Field(None, alias="managingOrganization", serialization_alias="managingOrganization") + patient: Reference = Field(alias="patient", serialization_alias="patient") + period: Period | None = Field(None, alias="period", serialization_alias="period") + referral_request: PyList[Reference] | None = Field(None, alias="referralRequest", serialization_alias="referralRequest") + status: Literal["planned", "waitlist", "active", "onhold", "finished", "cancelled", "entered-in-error"] = Field(alias="status", serialization_alias="status") + status_history: PyList[EpisodeOfCareStatusHistory] | None = Field(None, alias="statusHistory", serialization_alias="statusHistory") + team: PyList[Reference] | None = Field(None, alias="team", serialization_alias="team") + type: PyList[CodeableConcept] | None = Field(None, alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> EpisodeOfCare: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/event_definition.py b/examples/python/generated/hl7_fhir_r4_core/event_definition.py new file mode 100644 index 000000000..3bfba570a --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/event_definition.py @@ -0,0 +1,61 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + CodeableConcept, ContactDetail, Identifier, Period, Reference, RelatedArtifact, TriggerDefinition, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class EventDefinition(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='EventDefinition', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='EventDefinition' + ) + approval_date: str | None = Field(None, alias="approvalDate", serialization_alias="approvalDate") + author: PyList[ContactDetail] | None = Field(None, alias="author", serialization_alias="author") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + editor: PyList[ContactDetail] | None = Field(None, alias="editor", serialization_alias="editor") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + endorser: PyList[ContactDetail] | None = Field(None, alias="endorser", serialization_alias="endorser") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + last_review_date: str | None = Field(None, alias="lastReviewDate", serialization_alias="lastReviewDate") + name: str | None = Field(None, alias="name", serialization_alias="name") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + related_artifact: PyList[RelatedArtifact] | None = Field(None, alias="relatedArtifact", serialization_alias="relatedArtifact") + reviewer: PyList[ContactDetail] | None = Field(None, alias="reviewer", serialization_alias="reviewer") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + subject_codeable_concept: CodeableConcept | None = Field(None, alias="subjectCodeableConcept", serialization_alias="subjectCodeableConcept") + subject_reference: Reference | None = Field(None, alias="subjectReference", serialization_alias="subjectReference") + subtitle: str | None = Field(None, alias="subtitle", serialization_alias="subtitle") + title: str | None = Field(None, alias="title", serialization_alias="title") + topic: PyList[CodeableConcept] | None = Field(None, alias="topic", serialization_alias="topic") + trigger: PyList[TriggerDefinition] = Field(alias="trigger", serialization_alias="trigger") + url: str | None = Field(None, alias="url", serialization_alias="url") + usage: str | None = Field(None, alias="usage", serialization_alias="usage") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> EventDefinition: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/evidence.py b/examples/python/generated/hl7_fhir_r4_core/evidence.py new file mode 100644 index 000000000..89a40296d --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/evidence.py @@ -0,0 +1,60 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, CodeableConcept, ContactDetail, Identifier, Period, Reference, RelatedArtifact, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class Evidence(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Evidence', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Evidence' + ) + approval_date: str | None = Field(None, alias="approvalDate", serialization_alias="approvalDate") + author: PyList[ContactDetail] | None = Field(None, alias="author", serialization_alias="author") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + editor: PyList[ContactDetail] | None = Field(None, alias="editor", serialization_alias="editor") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + endorser: PyList[ContactDetail] | None = Field(None, alias="endorser", serialization_alias="endorser") + exposure_background: Reference = Field(alias="exposureBackground", serialization_alias="exposureBackground") + exposure_variant: PyList[Reference] | None = Field(None, alias="exposureVariant", serialization_alias="exposureVariant") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + last_review_date: str | None = Field(None, alias="lastReviewDate", serialization_alias="lastReviewDate") + name: str | None = Field(None, alias="name", serialization_alias="name") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + outcome: PyList[Reference] | None = Field(None, alias="outcome", serialization_alias="outcome") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + related_artifact: PyList[RelatedArtifact] | None = Field(None, alias="relatedArtifact", serialization_alias="relatedArtifact") + reviewer: PyList[ContactDetail] | None = Field(None, alias="reviewer", serialization_alias="reviewer") + short_title: str | None = Field(None, alias="shortTitle", serialization_alias="shortTitle") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + subtitle: str | None = Field(None, alias="subtitle", serialization_alias="subtitle") + title: str | None = Field(None, alias="title", serialization_alias="title") + topic: PyList[CodeableConcept] | None = Field(None, alias="topic", serialization_alias="topic") + url: str | None = Field(None, alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Evidence: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/evidence_variable.py b/examples/python/generated/hl7_fhir_r4_core/evidence_variable.py new file mode 100644 index 000000000..952633dcf --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/evidence_variable.py @@ -0,0 +1,79 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, ContactDetail, DataRequirement, Duration, Expression, Identifier, \ + Period, Reference, RelatedArtifact, Timing, TriggerDefinition, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class EvidenceVariableCharacteristic(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + definition_canonical: str | None = Field(None, alias="definitionCanonical", serialization_alias="definitionCanonical") + definition_codeable_concept: CodeableConcept | None = Field(None, alias="definitionCodeableConcept", serialization_alias="definitionCodeableConcept") + definition_data_requirement: DataRequirement | None = Field(None, alias="definitionDataRequirement", serialization_alias="definitionDataRequirement") + definition_expression: Expression | None = Field(None, alias="definitionExpression", serialization_alias="definitionExpression") + definition_reference: Reference | None = Field(None, alias="definitionReference", serialization_alias="definitionReference") + definition_trigger_definition: TriggerDefinition | None = Field(None, alias="definitionTriggerDefinition", serialization_alias="definitionTriggerDefinition") + description: str | None = Field(None, alias="description", serialization_alias="description") + exclude: bool | None = Field(None, alias="exclude", serialization_alias="exclude") + group_measure: Literal["mean", "median", "mean-of-mean", "mean-of-median", "median-of-mean", "median-of-median"] | None = Field(None, alias="groupMeasure", serialization_alias="groupMeasure") + participant_effective_date_time: str | None = Field(None, alias="participantEffectiveDateTime", serialization_alias="participantEffectiveDateTime") + participant_effective_duration: Duration | None = Field(None, alias="participantEffectiveDuration", serialization_alias="participantEffectiveDuration") + participant_effective_period: Period | None = Field(None, alias="participantEffectivePeriod", serialization_alias="participantEffectivePeriod") + participant_effective_timing: Timing | None = Field(None, alias="participantEffectiveTiming", serialization_alias="participantEffectiveTiming") + time_from_start: Duration | None = Field(None, alias="timeFromStart", serialization_alias="timeFromStart") + usage_context: PyList[UsageContext] | None = Field(None, alias="usageContext", serialization_alias="usageContext") + + +class EvidenceVariable(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='EvidenceVariable', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='EvidenceVariable' + ) + approval_date: str | None = Field(None, alias="approvalDate", serialization_alias="approvalDate") + author: PyList[ContactDetail] | None = Field(None, alias="author", serialization_alias="author") + characteristic: PyList[EvidenceVariableCharacteristic] = Field(alias="characteristic", serialization_alias="characteristic") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + editor: PyList[ContactDetail] | None = Field(None, alias="editor", serialization_alias="editor") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + endorser: PyList[ContactDetail] | None = Field(None, alias="endorser", serialization_alias="endorser") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + last_review_date: str | None = Field(None, alias="lastReviewDate", serialization_alias="lastReviewDate") + name: str | None = Field(None, alias="name", serialization_alias="name") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + related_artifact: PyList[RelatedArtifact] | None = Field(None, alias="relatedArtifact", serialization_alias="relatedArtifact") + reviewer: PyList[ContactDetail] | None = Field(None, alias="reviewer", serialization_alias="reviewer") + short_title: str | None = Field(None, alias="shortTitle", serialization_alias="shortTitle") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + subtitle: str | None = Field(None, alias="subtitle", serialization_alias="subtitle") + title: str | None = Field(None, alias="title", serialization_alias="title") + topic: PyList[CodeableConcept] | None = Field(None, alias="topic", serialization_alias="topic") + type: Literal["dichotomous", "continuous", "descriptive"] | None = Field(None, alias="type", serialization_alias="type") + url: str | None = Field(None, alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> EvidenceVariable: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/example_scenario.py b/examples/python/generated/hl7_fhir_r4_core/example_scenario.py new file mode 100644 index 000000000..e5e880157 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/example_scenario.py @@ -0,0 +1,110 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, ContactDetail, Identifier, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ExampleScenarioActor(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + actor_id: str = Field(alias="actorId", serialization_alias="actorId") + description: str | None = Field(None, alias="description", serialization_alias="description") + name: str | None = Field(None, alias="name", serialization_alias="name") + type: Literal["person", "entity"] = Field(alias="type", serialization_alias="type") + +class ExampleScenarioInstance(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + contained_instance: PyList[ExampleScenarioInstanceContainedInstance] | None = Field(None, alias="containedInstance", serialization_alias="containedInstance") + description: str | None = Field(None, alias="description", serialization_alias="description") + name: str | None = Field(None, alias="name", serialization_alias="name") + resource_id: str = Field(alias="resourceId", serialization_alias="resourceId") + resource_type: str = Field(alias="resourceType", serialization_alias="resourceType") + version: PyList[ExampleScenarioInstanceVersion] | None = Field(None, alias="version", serialization_alias="version") + +class ExampleScenarioInstanceContainedInstance(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_id: str = Field(alias="resourceId", serialization_alias="resourceId") + version_id: str | None = Field(None, alias="versionId", serialization_alias="versionId") + +class ExampleScenarioInstanceVersion(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str = Field(alias="description", serialization_alias="description") + version_id: str = Field(alias="versionId", serialization_alias="versionId") + +class ExampleScenarioProcess(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + post_conditions: str | None = Field(None, alias="postConditions", serialization_alias="postConditions") + pre_conditions: str | None = Field(None, alias="preConditions", serialization_alias="preConditions") + step: PyList[ExampleScenarioProcessStep] | None = Field(None, alias="step", serialization_alias="step") + title: str = Field(alias="title", serialization_alias="title") + +class ExampleScenarioProcessStep(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + alternative: PyList[ExampleScenarioProcessStepAlternative] | None = Field(None, alias="alternative", serialization_alias="alternative") + operation: ExampleScenarioProcessStepOperation | None = Field(None, alias="operation", serialization_alias="operation") + pause: bool | None = Field(None, alias="pause", serialization_alias="pause") + process: PyList[ExampleScenarioProcess] | None = Field(None, alias="process", serialization_alias="process") + +class ExampleScenarioProcessStepAlternative(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + step: PyList[ExampleScenarioProcessStep] | None = Field(None, alias="step", serialization_alias="step") + title: str = Field(alias="title", serialization_alias="title") + +class ExampleScenarioProcessStepOperation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + initiator: str | None = Field(None, alias="initiator", serialization_alias="initiator") + initiator_active: bool | None = Field(None, alias="initiatorActive", serialization_alias="initiatorActive") + name: str | None = Field(None, alias="name", serialization_alias="name") + number: str = Field(alias="number", serialization_alias="number") + receiver: str | None = Field(None, alias="receiver", serialization_alias="receiver") + receiver_active: bool | None = Field(None, alias="receiverActive", serialization_alias="receiverActive") + request: ExampleScenarioInstanceContainedInstance | None = Field(None, alias="request", serialization_alias="request") + response: ExampleScenarioInstanceContainedInstance | None = Field(None, alias="response", serialization_alias="response") + type: str | None = Field(None, alias="type", serialization_alias="type") + + +class ExampleScenario(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ExampleScenario', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ExampleScenario' + ) + actor: PyList[ExampleScenarioActor] | None = Field(None, alias="actor", serialization_alias="actor") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + instance: PyList[ExampleScenarioInstance] | None = Field(None, alias="instance", serialization_alias="instance") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + name: str | None = Field(None, alias="name", serialization_alias="name") + process: PyList[ExampleScenarioProcess] | None = Field(None, alias="process", serialization_alias="process") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + url: str | None = Field(None, alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + workflow: PyList[str] | None = Field(None, alias="workflow", serialization_alias="workflow") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ExampleScenario: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/explanation_of_benefit.py b/examples/python/generated/hl7_fhir_r4_core/explanation_of_benefit.py new file mode 100644 index 000000000..4dc6654a4 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/explanation_of_benefit.py @@ -0,0 +1,297 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Address, Attachment, BackboneElement, CodeableConcept, Coding, Identifier, Money, Period, Quantity, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ExplanationOfBenefitAccident(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + date: str | None = Field(None, alias="date", serialization_alias="date") + location_address: Address | None = Field(None, alias="locationAddress", serialization_alias="locationAddress") + location_reference: Reference | None = Field(None, alias="locationReference", serialization_alias="locationReference") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class ExplanationOfBenefitAddItem(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + adjudication: PyList[ExplanationOfBenefitItemAdjudication] | None = Field(None, alias="adjudication", serialization_alias="adjudication") + body_site: CodeableConcept | None = Field(None, alias="bodySite", serialization_alias="bodySite") + detail: PyList[ExplanationOfBenefitAddItemDetail] | None = Field(None, alias="detail", serialization_alias="detail") + detail_sequence: PyList[PositiveInt] | None = Field(None, alias="detailSequence", serialization_alias="detailSequence") + factor: float | None = Field(None, alias="factor", serialization_alias="factor") + item_sequence: PyList[PositiveInt] | None = Field(None, alias="itemSequence", serialization_alias="itemSequence") + location_address: Address | None = Field(None, alias="locationAddress", serialization_alias="locationAddress") + location_codeable_concept: CodeableConcept | None = Field(None, alias="locationCodeableConcept", serialization_alias="locationCodeableConcept") + location_reference: Reference | None = Field(None, alias="locationReference", serialization_alias="locationReference") + modifier: PyList[CodeableConcept] | None = Field(None, alias="modifier", serialization_alias="modifier") + net: Money | None = Field(None, alias="net", serialization_alias="net") + note_number: PyList[PositiveInt] | None = Field(None, alias="noteNumber", serialization_alias="noteNumber") + product_or_service: CodeableConcept = Field(alias="productOrService", serialization_alias="productOrService") + program_code: PyList[CodeableConcept] | None = Field(None, alias="programCode", serialization_alias="programCode") + provider: PyList[Reference] | None = Field(None, alias="provider", serialization_alias="provider") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + serviced_date: str | None = Field(None, alias="servicedDate", serialization_alias="servicedDate") + serviced_period: Period | None = Field(None, alias="servicedPeriod", serialization_alias="servicedPeriod") + sub_detail_sequence: PyList[PositiveInt] | None = Field(None, alias="subDetailSequence", serialization_alias="subDetailSequence") + sub_site: PyList[CodeableConcept] | None = Field(None, alias="subSite", serialization_alias="subSite") + unit_price: Money | None = Field(None, alias="unitPrice", serialization_alias="unitPrice") + +class ExplanationOfBenefitAddItemDetail(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + adjudication: PyList[ExplanationOfBenefitItemAdjudication] | None = Field(None, alias="adjudication", serialization_alias="adjudication") + factor: float | None = Field(None, alias="factor", serialization_alias="factor") + modifier: PyList[CodeableConcept] | None = Field(None, alias="modifier", serialization_alias="modifier") + net: Money | None = Field(None, alias="net", serialization_alias="net") + note_number: PyList[PositiveInt] | None = Field(None, alias="noteNumber", serialization_alias="noteNumber") + product_or_service: CodeableConcept = Field(alias="productOrService", serialization_alias="productOrService") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + sub_detail: PyList[ExplanationOfBenefitAddItemDetailSubDetail] | None = Field(None, alias="subDetail", serialization_alias="subDetail") + unit_price: Money | None = Field(None, alias="unitPrice", serialization_alias="unitPrice") + +class ExplanationOfBenefitAddItemDetailSubDetail(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + adjudication: PyList[ExplanationOfBenefitItemAdjudication] | None = Field(None, alias="adjudication", serialization_alias="adjudication") + factor: float | None = Field(None, alias="factor", serialization_alias="factor") + modifier: PyList[CodeableConcept] | None = Field(None, alias="modifier", serialization_alias="modifier") + net: Money | None = Field(None, alias="net", serialization_alias="net") + note_number: PyList[PositiveInt] | None = Field(None, alias="noteNumber", serialization_alias="noteNumber") + product_or_service: CodeableConcept = Field(alias="productOrService", serialization_alias="productOrService") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + unit_price: Money | None = Field(None, alias="unitPrice", serialization_alias="unitPrice") + +class ExplanationOfBenefitBenefitBalance(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + category: CodeableConcept = Field(alias="category", serialization_alias="category") + description: str | None = Field(None, alias="description", serialization_alias="description") + excluded: bool | None = Field(None, alias="excluded", serialization_alias="excluded") + financial: PyList[ExplanationOfBenefitBenefitBalanceFinancial] | None = Field(None, alias="financial", serialization_alias="financial") + name: str | None = Field(None, alias="name", serialization_alias="name") + network: CodeableConcept | None = Field(None, alias="network", serialization_alias="network") + term: CodeableConcept | None = Field(None, alias="term", serialization_alias="term") + unit: CodeableConcept | None = Field(None, alias="unit", serialization_alias="unit") + +class ExplanationOfBenefitBenefitBalanceFinancial(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + allowed_money: Money | None = Field(None, alias="allowedMoney", serialization_alias="allowedMoney") + allowed_string: str | None = Field(None, alias="allowedString", serialization_alias="allowedString") + allowed_unsigned_int: int | None = Field(None, alias="allowedUnsignedInt", serialization_alias="allowedUnsignedInt") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + used_money: Money | None = Field(None, alias="usedMoney", serialization_alias="usedMoney") + used_unsigned_int: int | None = Field(None, alias="usedUnsignedInt", serialization_alias="usedUnsignedInt") + +class ExplanationOfBenefitCareTeam(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + provider: Reference = Field(alias="provider", serialization_alias="provider") + qualification: CodeableConcept | None = Field(None, alias="qualification", serialization_alias="qualification") + responsible: bool | None = Field(None, alias="responsible", serialization_alias="responsible") + role: CodeableConcept | None = Field(None, alias="role", serialization_alias="role") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + +class ExplanationOfBenefitDiagnosis(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + diagnosis_codeable_concept: CodeableConcept | None = Field(None, alias="diagnosisCodeableConcept", serialization_alias="diagnosisCodeableConcept") + diagnosis_reference: Reference | None = Field(None, alias="diagnosisReference", serialization_alias="diagnosisReference") + on_admission: CodeableConcept | None = Field(None, alias="onAdmission", serialization_alias="onAdmission") + package_code: CodeableConcept | None = Field(None, alias="packageCode", serialization_alias="packageCode") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + type: PyList[CodeableConcept] | None = Field(None, alias="type", serialization_alias="type") + +class ExplanationOfBenefitInsurance(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + coverage: Reference = Field(alias="coverage", serialization_alias="coverage") + focal: bool = Field(alias="focal", serialization_alias="focal") + pre_auth_ref: PyList[str] | None = Field(None, alias="preAuthRef", serialization_alias="preAuthRef") + +class ExplanationOfBenefitItem(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + adjudication: PyList[ExplanationOfBenefitItemAdjudication] | None = Field(None, alias="adjudication", serialization_alias="adjudication") + body_site: CodeableConcept | None = Field(None, alias="bodySite", serialization_alias="bodySite") + care_team_sequence: PyList[PositiveInt] | None = Field(None, alias="careTeamSequence", serialization_alias="careTeamSequence") + category: CodeableConcept | None = Field(None, alias="category", serialization_alias="category") + detail: PyList[ExplanationOfBenefitItemDetail] | None = Field(None, alias="detail", serialization_alias="detail") + diagnosis_sequence: PyList[PositiveInt] | None = Field(None, alias="diagnosisSequence", serialization_alias="diagnosisSequence") + encounter: PyList[Reference] | None = Field(None, alias="encounter", serialization_alias="encounter") + factor: float | None = Field(None, alias="factor", serialization_alias="factor") + information_sequence: PyList[PositiveInt] | None = Field(None, alias="informationSequence", serialization_alias="informationSequence") + location_address: Address | None = Field(None, alias="locationAddress", serialization_alias="locationAddress") + location_codeable_concept: CodeableConcept | None = Field(None, alias="locationCodeableConcept", serialization_alias="locationCodeableConcept") + location_reference: Reference | None = Field(None, alias="locationReference", serialization_alias="locationReference") + modifier: PyList[CodeableConcept] | None = Field(None, alias="modifier", serialization_alias="modifier") + net: Money | None = Field(None, alias="net", serialization_alias="net") + note_number: PyList[PositiveInt] | None = Field(None, alias="noteNumber", serialization_alias="noteNumber") + procedure_sequence: PyList[PositiveInt] | None = Field(None, alias="procedureSequence", serialization_alias="procedureSequence") + product_or_service: CodeableConcept = Field(alias="productOrService", serialization_alias="productOrService") + program_code: PyList[CodeableConcept] | None = Field(None, alias="programCode", serialization_alias="programCode") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + revenue: CodeableConcept | None = Field(None, alias="revenue", serialization_alias="revenue") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + serviced_date: str | None = Field(None, alias="servicedDate", serialization_alias="servicedDate") + serviced_period: Period | None = Field(None, alias="servicedPeriod", serialization_alias="servicedPeriod") + sub_site: PyList[CodeableConcept] | None = Field(None, alias="subSite", serialization_alias="subSite") + udi: PyList[Reference] | None = Field(None, alias="udi", serialization_alias="udi") + unit_price: Money | None = Field(None, alias="unitPrice", serialization_alias="unitPrice") + +class ExplanationOfBenefitItemAdjudication(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount: Money | None = Field(None, alias="amount", serialization_alias="amount") + category: CodeableConcept = Field(alias="category", serialization_alias="category") + reason: CodeableConcept | None = Field(None, alias="reason", serialization_alias="reason") + value: float | None = Field(None, alias="value", serialization_alias="value") + +class ExplanationOfBenefitItemDetail(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + adjudication: PyList[ExplanationOfBenefitItemAdjudication] | None = Field(None, alias="adjudication", serialization_alias="adjudication") + category: CodeableConcept | None = Field(None, alias="category", serialization_alias="category") + factor: float | None = Field(None, alias="factor", serialization_alias="factor") + modifier: PyList[CodeableConcept] | None = Field(None, alias="modifier", serialization_alias="modifier") + net: Money | None = Field(None, alias="net", serialization_alias="net") + note_number: PyList[PositiveInt] | None = Field(None, alias="noteNumber", serialization_alias="noteNumber") + product_or_service: CodeableConcept = Field(alias="productOrService", serialization_alias="productOrService") + program_code: PyList[CodeableConcept] | None = Field(None, alias="programCode", serialization_alias="programCode") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + revenue: CodeableConcept | None = Field(None, alias="revenue", serialization_alias="revenue") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + sub_detail: PyList[ExplanationOfBenefitItemDetailSubDetail] | None = Field(None, alias="subDetail", serialization_alias="subDetail") + udi: PyList[Reference] | None = Field(None, alias="udi", serialization_alias="udi") + unit_price: Money | None = Field(None, alias="unitPrice", serialization_alias="unitPrice") + +class ExplanationOfBenefitItemDetailSubDetail(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + adjudication: PyList[ExplanationOfBenefitItemAdjudication] | None = Field(None, alias="adjudication", serialization_alias="adjudication") + category: CodeableConcept | None = Field(None, alias="category", serialization_alias="category") + factor: float | None = Field(None, alias="factor", serialization_alias="factor") + modifier: PyList[CodeableConcept] | None = Field(None, alias="modifier", serialization_alias="modifier") + net: Money | None = Field(None, alias="net", serialization_alias="net") + note_number: PyList[PositiveInt] | None = Field(None, alias="noteNumber", serialization_alias="noteNumber") + product_or_service: CodeableConcept = Field(alias="productOrService", serialization_alias="productOrService") + program_code: PyList[CodeableConcept] | None = Field(None, alias="programCode", serialization_alias="programCode") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + revenue: CodeableConcept | None = Field(None, alias="revenue", serialization_alias="revenue") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + udi: PyList[Reference] | None = Field(None, alias="udi", serialization_alias="udi") + unit_price: Money | None = Field(None, alias="unitPrice", serialization_alias="unitPrice") + +class ExplanationOfBenefitPayee(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + party: Reference | None = Field(None, alias="party", serialization_alias="party") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class ExplanationOfBenefitPayment(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + adjustment: Money | None = Field(None, alias="adjustment", serialization_alias="adjustment") + adjustment_reason: CodeableConcept | None = Field(None, alias="adjustmentReason", serialization_alias="adjustmentReason") + amount: Money | None = Field(None, alias="amount", serialization_alias="amount") + date: str | None = Field(None, alias="date", serialization_alias="date") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class ExplanationOfBenefitProcedure(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + date: str | None = Field(None, alias="date", serialization_alias="date") + procedure_codeable_concept: CodeableConcept | None = Field(None, alias="procedureCodeableConcept", serialization_alias="procedureCodeableConcept") + procedure_reference: Reference | None = Field(None, alias="procedureReference", serialization_alias="procedureReference") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + type: PyList[CodeableConcept] | None = Field(None, alias="type", serialization_alias="type") + udi: PyList[Reference] | None = Field(None, alias="udi", serialization_alias="udi") + +class ExplanationOfBenefitProcessNote(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + language: CodeableConcept | None = Field(None, alias="language", serialization_alias="language") + number: PositiveInt | None = Field(None, alias="number", serialization_alias="number") + text: str | None = Field(None, alias="text", serialization_alias="text") + type: Literal["display", "print", "printoper"] | None = Field(None, alias="type", serialization_alias="type") + +class ExplanationOfBenefitRelated(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + claim: Reference | None = Field(None, alias="claim", serialization_alias="claim") + reference: Identifier | None = Field(None, alias="reference", serialization_alias="reference") + relationship: CodeableConcept | None = Field(None, alias="relationship", serialization_alias="relationship") + +class ExplanationOfBenefitSupportingInfo(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + category: CodeableConcept = Field(alias="category", serialization_alias="category") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + reason: Coding | None = Field(None, alias="reason", serialization_alias="reason") + sequence: PositiveInt = Field(alias="sequence", serialization_alias="sequence") + timing_date: str | None = Field(None, alias="timingDate", serialization_alias="timingDate") + timing_period: Period | None = Field(None, alias="timingPeriod", serialization_alias="timingPeriod") + value_attachment: Attachment | None = Field(None, alias="valueAttachment", serialization_alias="valueAttachment") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_reference: Reference | None = Field(None, alias="valueReference", serialization_alias="valueReference") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + +class ExplanationOfBenefitTotal(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount: Money = Field(alias="amount", serialization_alias="amount") + category: CodeableConcept = Field(alias="category", serialization_alias="category") + + +class ExplanationOfBenefit(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ExplanationOfBenefit', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ExplanationOfBenefit' + ) + accident: ExplanationOfBenefitAccident | None = Field(None, alias="accident", serialization_alias="accident") + add_item: PyList[ExplanationOfBenefitAddItem] | None = Field(None, alias="addItem", serialization_alias="addItem") + adjudication: PyList[ExplanationOfBenefitItemAdjudication] | None = Field(None, alias="adjudication", serialization_alias="adjudication") + benefit_balance: PyList[ExplanationOfBenefitBenefitBalance] | None = Field(None, alias="benefitBalance", serialization_alias="benefitBalance") + benefit_period: Period | None = Field(None, alias="benefitPeriod", serialization_alias="benefitPeriod") + billable_period: Period | None = Field(None, alias="billablePeriod", serialization_alias="billablePeriod") + care_team: PyList[ExplanationOfBenefitCareTeam] | None = Field(None, alias="careTeam", serialization_alias="careTeam") + claim: Reference | None = Field(None, alias="claim", serialization_alias="claim") + claim_response: Reference | None = Field(None, alias="claimResponse", serialization_alias="claimResponse") + created: str = Field(alias="created", serialization_alias="created") + diagnosis: PyList[ExplanationOfBenefitDiagnosis] | None = Field(None, alias="diagnosis", serialization_alias="diagnosis") + disposition: str | None = Field(None, alias="disposition", serialization_alias="disposition") + enterer: Reference | None = Field(None, alias="enterer", serialization_alias="enterer") + facility: Reference | None = Field(None, alias="facility", serialization_alias="facility") + form: Attachment | None = Field(None, alias="form", serialization_alias="form") + form_code: CodeableConcept | None = Field(None, alias="formCode", serialization_alias="formCode") + funds_reserve: CodeableConcept | None = Field(None, alias="fundsReserve", serialization_alias="fundsReserve") + funds_reserve_requested: CodeableConcept | None = Field(None, alias="fundsReserveRequested", serialization_alias="fundsReserveRequested") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + insurance: PyList[ExplanationOfBenefitInsurance] = Field(alias="insurance", serialization_alias="insurance") + insurer: Reference = Field(alias="insurer", serialization_alias="insurer") + item: PyList[ExplanationOfBenefitItem] | None = Field(None, alias="item", serialization_alias="item") + original_prescription: Reference | None = Field(None, alias="originalPrescription", serialization_alias="originalPrescription") + outcome: Literal["queued", "complete", "error", "partial"] = Field(alias="outcome", serialization_alias="outcome") + patient: Reference = Field(alias="patient", serialization_alias="patient") + payee: ExplanationOfBenefitPayee | None = Field(None, alias="payee", serialization_alias="payee") + payment: ExplanationOfBenefitPayment | None = Field(None, alias="payment", serialization_alias="payment") + pre_auth_ref: PyList[str] | None = Field(None, alias="preAuthRef", serialization_alias="preAuthRef") + pre_auth_ref_period: PyList[Period] | None = Field(None, alias="preAuthRefPeriod", serialization_alias="preAuthRefPeriod") + precedence: PositiveInt | None = Field(None, alias="precedence", serialization_alias="precedence") + prescription: Reference | None = Field(None, alias="prescription", serialization_alias="prescription") + priority: CodeableConcept | None = Field(None, alias="priority", serialization_alias="priority") + procedure: PyList[ExplanationOfBenefitProcedure] | None = Field(None, alias="procedure", serialization_alias="procedure") + process_note: PyList[ExplanationOfBenefitProcessNote] | None = Field(None, alias="processNote", serialization_alias="processNote") + provider: Reference = Field(alias="provider", serialization_alias="provider") + referral: Reference | None = Field(None, alias="referral", serialization_alias="referral") + related: PyList[ExplanationOfBenefitRelated] | None = Field(None, alias="related", serialization_alias="related") + status: Literal["active", "cancelled", "draft", "entered-in-error"] = Field(alias="status", serialization_alias="status") + sub_type: CodeableConcept | None = Field(None, alias="subType", serialization_alias="subType") + supporting_info: PyList[ExplanationOfBenefitSupportingInfo] | None = Field(None, alias="supportingInfo", serialization_alias="supportingInfo") + total: PyList[ExplanationOfBenefitTotal] | None = Field(None, alias="total", serialization_alias="total") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + use: Literal["claim", "preauthorization", "predetermination"] = Field(alias="use", serialization_alias="use") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ExplanationOfBenefit: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/family_member_history.py b/examples/python/generated/hl7_fhir_r4_core/family_member_history.py new file mode 100644 index 000000000..6615b38cc --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/family_member_history.py @@ -0,0 +1,70 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Age, Annotation, BackboneElement, CodeableConcept, Identifier, Period, Range, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class FamilyMemberHistoryCondition(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + contributed_to_death: bool | None = Field(None, alias="contributedToDeath", serialization_alias="contributedToDeath") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + onset_age: Age | None = Field(None, alias="onsetAge", serialization_alias="onsetAge") + onset_period: Period | None = Field(None, alias="onsetPeriod", serialization_alias="onsetPeriod") + onset_range: Range | None = Field(None, alias="onsetRange", serialization_alias="onsetRange") + onset_string: str | None = Field(None, alias="onsetString", serialization_alias="onsetString") + outcome: CodeableConcept | None = Field(None, alias="outcome", serialization_alias="outcome") + + +class FamilyMemberHistory(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='FamilyMemberHistory', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='FamilyMemberHistory' + ) + age_age: Age | None = Field(None, alias="ageAge", serialization_alias="ageAge") + age_range: Range | None = Field(None, alias="ageRange", serialization_alias="ageRange") + age_string: str | None = Field(None, alias="ageString", serialization_alias="ageString") + born_date: str | None = Field(None, alias="bornDate", serialization_alias="bornDate") + born_period: Period | None = Field(None, alias="bornPeriod", serialization_alias="bornPeriod") + born_string: str | None = Field(None, alias="bornString", serialization_alias="bornString") + condition: PyList[FamilyMemberHistoryCondition] | None = Field(None, alias="condition", serialization_alias="condition") + data_absent_reason: CodeableConcept | None = Field(None, alias="dataAbsentReason", serialization_alias="dataAbsentReason") + date: str | None = Field(None, alias="date", serialization_alias="date") + deceased_age: Age | None = Field(None, alias="deceasedAge", serialization_alias="deceasedAge") + deceased_boolean: bool | None = Field(None, alias="deceasedBoolean", serialization_alias="deceasedBoolean") + deceased_date: str | None = Field(None, alias="deceasedDate", serialization_alias="deceasedDate") + deceased_range: Range | None = Field(None, alias="deceasedRange", serialization_alias="deceasedRange") + deceased_string: str | None = Field(None, alias="deceasedString", serialization_alias="deceasedString") + estimated_age: bool | None = Field(None, alias="estimatedAge", serialization_alias="estimatedAge") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + instantiates_canonical: PyList[str] | None = Field(None, alias="instantiatesCanonical", serialization_alias="instantiatesCanonical") + instantiates_uri: PyList[str] | None = Field(None, alias="instantiatesUri", serialization_alias="instantiatesUri") + name: str | None = Field(None, alias="name", serialization_alias="name") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + patient: Reference = Field(alias="patient", serialization_alias="patient") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + relationship: CodeableConcept = Field(alias="relationship", serialization_alias="relationship") + sex: CodeableConcept | None = Field(None, alias="sex", serialization_alias="sex") + status: Literal["partial", "completed", "entered-in-error", "health-unknown"] = Field(alias="status", serialization_alias="status") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> FamilyMemberHistory: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/flag.py b/examples/python/generated/hl7_fhir_r4_core/flag.py new file mode 100644 index 000000000..8d29c563b --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/flag.py @@ -0,0 +1,38 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import CodeableConcept, Identifier, Period, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class Flag(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Flag', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Flag' + ) + author: Reference | None = Field(None, alias="author", serialization_alias="author") + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + period: Period | None = Field(None, alias="period", serialization_alias="period") + status: Literal["active", "inactive", "entered-in-error"] = Field(alias="status", serialization_alias="status") + subject: Reference = Field(alias="subject", serialization_alias="subject") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Flag: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/goal.py b/examples/python/generated/hl7_fhir_r4_core/goal.py new file mode 100644 index 000000000..9d0e70196 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/goal.py @@ -0,0 +1,63 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Duration, Identifier, Quantity, Range, Ratio, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class GoalTarget(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + detail_boolean: bool | None = Field(None, alias="detailBoolean", serialization_alias="detailBoolean") + detail_codeable_concept: CodeableConcept | None = Field(None, alias="detailCodeableConcept", serialization_alias="detailCodeableConcept") + detail_integer: int | None = Field(None, alias="detailInteger", serialization_alias="detailInteger") + detail_quantity: Quantity | None = Field(None, alias="detailQuantity", serialization_alias="detailQuantity") + detail_range: Range | None = Field(None, alias="detailRange", serialization_alias="detailRange") + detail_ratio: Ratio | None = Field(None, alias="detailRatio", serialization_alias="detailRatio") + detail_string: str | None = Field(None, alias="detailString", serialization_alias="detailString") + due_date: str | None = Field(None, alias="dueDate", serialization_alias="dueDate") + due_duration: Duration | None = Field(None, alias="dueDuration", serialization_alias="dueDuration") + measure: CodeableConcept | None = Field(None, alias="measure", serialization_alias="measure") + + +class Goal(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Goal', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Goal' + ) + achievement_status: CodeableConcept | None = Field(None, alias="achievementStatus", serialization_alias="achievementStatus") + addresses: PyList[Reference] | None = Field(None, alias="addresses", serialization_alias="addresses") + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + description: CodeableConcept = Field(alias="description", serialization_alias="description") + expressed_by: Reference | None = Field(None, alias="expressedBy", serialization_alias="expressedBy") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + lifecycle_status: Literal["proposed", "planned", "accepted", "active", "on-hold", "completed", "cancelled", "entered-in-error", "rejected"] = Field(alias="lifecycleStatus", serialization_alias="lifecycleStatus") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + outcome_code: PyList[CodeableConcept] | None = Field(None, alias="outcomeCode", serialization_alias="outcomeCode") + outcome_reference: PyList[Reference] | None = Field(None, alias="outcomeReference", serialization_alias="outcomeReference") + priority: CodeableConcept | None = Field(None, alias="priority", serialization_alias="priority") + start_codeable_concept: CodeableConcept | None = Field(None, alias="startCodeableConcept", serialization_alias="startCodeableConcept") + start_date: str | None = Field(None, alias="startDate", serialization_alias="startDate") + status_date: str | None = Field(None, alias="statusDate", serialization_alias="statusDate") + status_reason: str | None = Field(None, alias="statusReason", serialization_alias="statusReason") + subject: Reference = Field(alias="subject", serialization_alias="subject") + target: PyList[GoalTarget] | None = Field(None, alias="target", serialization_alias="target") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Goal: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/graph_definition.py b/examples/python/generated/hl7_fhir_r4_core/graph_definition.py new file mode 100644 index 000000000..0afda0b4b --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/graph_definition.py @@ -0,0 +1,73 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, ContactDetail, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class GraphDefinitionLink(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + max: str | None = Field(None, alias="max", serialization_alias="max") + min: int | None = Field(None, alias="min", serialization_alias="min") + path: str | None = Field(None, alias="path", serialization_alias="path") + slice_name: str | None = Field(None, alias="sliceName", serialization_alias="sliceName") + target: PyList[GraphDefinitionLinkTarget] | None = Field(None, alias="target", serialization_alias="target") + +class GraphDefinitionLinkTarget(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + compartment: PyList[GraphDefinitionLinkTargetCompartment] | None = Field(None, alias="compartment", serialization_alias="compartment") + link: PyList[GraphDefinitionLink] | None = Field(None, alias="link", serialization_alias="link") + params: str | None = Field(None, alias="params", serialization_alias="params") + profile: str | None = Field(None, alias="profile", serialization_alias="profile") + type: str = Field(alias="type", serialization_alias="type") + +class GraphDefinitionLinkTargetCompartment(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: Literal["Patient", "Encounter", "RelatedPerson", "Practitioner", "Device"] = Field(alias="code", serialization_alias="code") + description: str | None = Field(None, alias="description", serialization_alias="description") + expression: str | None = Field(None, alias="expression", serialization_alias="expression") + rule: Literal["identical", "matching", "different", "custom"] = Field(alias="rule", serialization_alias="rule") + use: Literal["condition", "requirement"] = Field(alias="use", serialization_alias="use") + + +class GraphDefinition(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='GraphDefinition', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='GraphDefinition' + ) + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + link: PyList[GraphDefinitionLink] | None = Field(None, alias="link", serialization_alias="link") + name: str = Field(alias="name", serialization_alias="name") + profile: str | None = Field(None, alias="profile", serialization_alias="profile") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + start: str = Field(alias="start", serialization_alias="start") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + url: str | None = Field(None, alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> GraphDefinition: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/group.py b/examples/python/generated/hl7_fhir_r4_core/group.py new file mode 100644 index 000000000..d4ab9892d --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/group.py @@ -0,0 +1,60 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Period, Quantity, Range, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class GroupCharacteristic(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + exclude: bool = Field(alias="exclude", serialization_alias="exclude") + period: Period | None = Field(None, alias="period", serialization_alias="period") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_codeable_concept: CodeableConcept | None = Field(None, alias="valueCodeableConcept", serialization_alias="valueCodeableConcept") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_range: Range | None = Field(None, alias="valueRange", serialization_alias="valueRange") + value_reference: Reference | None = Field(None, alias="valueReference", serialization_alias="valueReference") + +class GroupMember(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + entity: Reference = Field(alias="entity", serialization_alias="entity") + inactive: bool | None = Field(None, alias="inactive", serialization_alias="inactive") + period: Period | None = Field(None, alias="period", serialization_alias="period") + + +class Group(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Group', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Group' + ) + active: bool | None = Field(None, alias="active", serialization_alias="active") + actual: bool = Field(alias="actual", serialization_alias="actual") + characteristic: PyList[GroupCharacteristic] | None = Field(None, alias="characteristic", serialization_alias="characteristic") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + managing_entity: Reference | None = Field(None, alias="managingEntity", serialization_alias="managingEntity") + member: PyList[GroupMember] | None = Field(None, alias="member", serialization_alias="member") + name: str | None = Field(None, alias="name", serialization_alias="name") + quantity: int | None = Field(None, alias="quantity", serialization_alias="quantity") + type: Literal["person", "animal", "practitioner", "device", "medication", "substance"] = Field(alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Group: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/guidance_response.py b/examples/python/generated/hl7_fhir_r4_core/guidance_response.py new file mode 100644 index 000000000..8440d7c85 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/guidance_response.py @@ -0,0 +1,49 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, CodeableConcept, DataRequirement, Identifier, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class GuidanceResponse(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='GuidanceResponse', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='GuidanceResponse' + ) + data_requirement: PyList[DataRequirement] | None = Field(None, alias="dataRequirement", serialization_alias="dataRequirement") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + evaluation_message: PyList[Reference] | None = Field(None, alias="evaluationMessage", serialization_alias="evaluationMessage") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + module_canonical: str | None = Field(None, alias="moduleCanonical", serialization_alias="moduleCanonical") + module_codeable_concept: CodeableConcept | None = Field(None, alias="moduleCodeableConcept", serialization_alias="moduleCodeableConcept") + module_uri: str | None = Field(None, alias="moduleUri", serialization_alias="moduleUri") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + occurrence_date_time: str | None = Field(None, alias="occurrenceDateTime", serialization_alias="occurrenceDateTime") + output_parameters: Reference | None = Field(None, alias="outputParameters", serialization_alias="outputParameters") + performer: Reference | None = Field(None, alias="performer", serialization_alias="performer") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + request_identifier: Identifier | None = Field(None, alias="requestIdentifier", serialization_alias="requestIdentifier") + result: Reference | None = Field(None, alias="result", serialization_alias="result") + status: Literal["success", "data-requested", "data-required", "in-progress", "failure", "entered-in-error"] = Field(alias="status", serialization_alias="status") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> GuidanceResponse: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/healthcare_service.py b/examples/python/generated/hl7_fhir_r4_core/healthcare_service.py new file mode 100644 index 000000000..cd3c4d54f --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/healthcare_service.py @@ -0,0 +1,74 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Attachment, BackboneElement, CodeableConcept, ContactPoint, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class HealthcareServiceAvailableTime(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + all_day: bool | None = Field(None, alias="allDay", serialization_alias="allDay") + available_end_time: str | None = Field(None, alias="availableEndTime", serialization_alias="availableEndTime") + available_start_time: str | None = Field(None, alias="availableStartTime", serialization_alias="availableStartTime") + days_of_week: PyList[Literal["mon", "tue", "wed", "thu", "fri", "sat", "sun"]] | None = Field(None, alias="daysOfWeek", serialization_alias="daysOfWeek") + +class HealthcareServiceEligibility(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + +class HealthcareServiceNotAvailable(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str = Field(alias="description", serialization_alias="description") + during: Period | None = Field(None, alias="during", serialization_alias="during") + + +class HealthcareService(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='HealthcareService', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='HealthcareService' + ) + active: bool | None = Field(None, alias="active", serialization_alias="active") + appointment_required: bool | None = Field(None, alias="appointmentRequired", serialization_alias="appointmentRequired") + availability_exceptions: str | None = Field(None, alias="availabilityExceptions", serialization_alias="availabilityExceptions") + available_time: PyList[HealthcareServiceAvailableTime] | None = Field(None, alias="availableTime", serialization_alias="availableTime") + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + characteristic: PyList[CodeableConcept] | None = Field(None, alias="characteristic", serialization_alias="characteristic") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + communication: PyList[CodeableConcept] | None = Field(None, alias="communication", serialization_alias="communication") + coverage_area: PyList[Reference] | None = Field(None, alias="coverageArea", serialization_alias="coverageArea") + eligibility: PyList[HealthcareServiceEligibility] | None = Field(None, alias="eligibility", serialization_alias="eligibility") + endpoint: PyList[Reference] | None = Field(None, alias="endpoint", serialization_alias="endpoint") + extra_details: str | None = Field(None, alias="extraDetails", serialization_alias="extraDetails") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + location: PyList[Reference] | None = Field(None, alias="location", serialization_alias="location") + name: str | None = Field(None, alias="name", serialization_alias="name") + not_available: PyList[HealthcareServiceNotAvailable] | None = Field(None, alias="notAvailable", serialization_alias="notAvailable") + photo: Attachment | None = Field(None, alias="photo", serialization_alias="photo") + program: PyList[CodeableConcept] | None = Field(None, alias="program", serialization_alias="program") + provided_by: Reference | None = Field(None, alias="providedBy", serialization_alias="providedBy") + referral_method: PyList[CodeableConcept] | None = Field(None, alias="referralMethod", serialization_alias="referralMethod") + service_provision_code: PyList[CodeableConcept] | None = Field(None, alias="serviceProvisionCode", serialization_alias="serviceProvisionCode") + specialty: PyList[CodeableConcept] | None = Field(None, alias="specialty", serialization_alias="specialty") + telecom: PyList[ContactPoint] | None = Field(None, alias="telecom", serialization_alias="telecom") + type: PyList[CodeableConcept] | None = Field(None, alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> HealthcareService: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/imaging_study.py b/examples/python/generated/hl7_fhir_r4_core/imaging_study.py new file mode 100644 index 000000000..1dffedb68 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/imaging_study.py @@ -0,0 +1,80 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Coding, Identifier, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ImagingStudySeries(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + body_site: Coding | None = Field(None, alias="bodySite", serialization_alias="bodySite") + description: str | None = Field(None, alias="description", serialization_alias="description") + endpoint: PyList[Reference] | None = Field(None, alias="endpoint", serialization_alias="endpoint") + instance: PyList[ImagingStudySeriesInstance] | None = Field(None, alias="instance", serialization_alias="instance") + laterality: Coding | None = Field(None, alias="laterality", serialization_alias="laterality") + modality: Coding = Field(alias="modality", serialization_alias="modality") + number: int | None = Field(None, alias="number", serialization_alias="number") + number_of_instances: int | None = Field(None, alias="numberOfInstances", serialization_alias="numberOfInstances") + performer: PyList[ImagingStudySeriesPerformer] | None = Field(None, alias="performer", serialization_alias="performer") + specimen: PyList[Reference] | None = Field(None, alias="specimen", serialization_alias="specimen") + started: str | None = Field(None, alias="started", serialization_alias="started") + uid: str = Field(alias="uid", serialization_alias="uid") + +class ImagingStudySeriesInstance(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + number: int | None = Field(None, alias="number", serialization_alias="number") + sop_class: Coding = Field(alias="sopClass", serialization_alias="sopClass") + title: str | None = Field(None, alias="title", serialization_alias="title") + uid: str = Field(alias="uid", serialization_alias="uid") + +class ImagingStudySeriesPerformer(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + actor: Reference = Field(alias="actor", serialization_alias="actor") + function: CodeableConcept | None = Field(None, alias="function", serialization_alias="function") + + +class ImagingStudy(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ImagingStudy', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ImagingStudy' + ) + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + description: str | None = Field(None, alias="description", serialization_alias="description") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + endpoint: PyList[Reference] | None = Field(None, alias="endpoint", serialization_alias="endpoint") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + interpreter: PyList[Reference] | None = Field(None, alias="interpreter", serialization_alias="interpreter") + location: Reference | None = Field(None, alias="location", serialization_alias="location") + modality: PyList[Coding] | None = Field(None, alias="modality", serialization_alias="modality") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + number_of_instances: int | None = Field(None, alias="numberOfInstances", serialization_alias="numberOfInstances") + number_of_series: int | None = Field(None, alias="numberOfSeries", serialization_alias="numberOfSeries") + procedure_code: PyList[CodeableConcept] | None = Field(None, alias="procedureCode", serialization_alias="procedureCode") + procedure_reference: Reference | None = Field(None, alias="procedureReference", serialization_alias="procedureReference") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + referrer: Reference | None = Field(None, alias="referrer", serialization_alias="referrer") + series: PyList[ImagingStudySeries] | None = Field(None, alias="series", serialization_alias="series") + started: str | None = Field(None, alias="started", serialization_alias="started") + status: Literal["registered", "available", "cancelled", "entered-in-error", "unknown"] = Field(alias="status", serialization_alias="status") + subject: Reference = Field(alias="subject", serialization_alias="subject") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ImagingStudy: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/immunization.py b/examples/python/generated/hl7_fhir_r4_core/immunization.py new file mode 100644 index 000000000..a44e073c7 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/immunization.py @@ -0,0 +1,90 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Identifier, Quantity, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ImmunizationEducation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + document_type: str | None = Field(None, alias="documentType", serialization_alias="documentType") + presentation_date: str | None = Field(None, alias="presentationDate", serialization_alias="presentationDate") + publication_date: str | None = Field(None, alias="publicationDate", serialization_alias="publicationDate") + reference: str | None = Field(None, alias="reference", serialization_alias="reference") + +class ImmunizationPerformer(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + actor: Reference = Field(alias="actor", serialization_alias="actor") + function: CodeableConcept | None = Field(None, alias="function", serialization_alias="function") + +class ImmunizationProtocolApplied(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + authority: Reference | None = Field(None, alias="authority", serialization_alias="authority") + dose_number_positive_int: PositiveInt | None = Field(None, alias="doseNumberPositiveInt", serialization_alias="doseNumberPositiveInt") + dose_number_string: str | None = Field(None, alias="doseNumberString", serialization_alias="doseNumberString") + series: str | None = Field(None, alias="series", serialization_alias="series") + series_doses_positive_int: PositiveInt | None = Field(None, alias="seriesDosesPositiveInt", serialization_alias="seriesDosesPositiveInt") + series_doses_string: str | None = Field(None, alias="seriesDosesString", serialization_alias="seriesDosesString") + target_disease: PyList[CodeableConcept] | None = Field(None, alias="targetDisease", serialization_alias="targetDisease") + +class ImmunizationReaction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + date: str | None = Field(None, alias="date", serialization_alias="date") + detail: Reference | None = Field(None, alias="detail", serialization_alias="detail") + reported: bool | None = Field(None, alias="reported", serialization_alias="reported") + + +class Immunization(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Immunization', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Immunization' + ) + dose_quantity: Quantity | None = Field(None, alias="doseQuantity", serialization_alias="doseQuantity") + education: PyList[ImmunizationEducation] | None = Field(None, alias="education", serialization_alias="education") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + expiration_date: str | None = Field(None, alias="expirationDate", serialization_alias="expirationDate") + funding_source: CodeableConcept | None = Field(None, alias="fundingSource", serialization_alias="fundingSource") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + is_subpotent: bool | None = Field(None, alias="isSubpotent", serialization_alias="isSubpotent") + location: Reference | None = Field(None, alias="location", serialization_alias="location") + lot_number: str | None = Field(None, alias="lotNumber", serialization_alias="lotNumber") + manufacturer: Reference | None = Field(None, alias="manufacturer", serialization_alias="manufacturer") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + occurrence_date_time: str | None = Field(None, alias="occurrenceDateTime", serialization_alias="occurrenceDateTime") + occurrence_string: str | None = Field(None, alias="occurrenceString", serialization_alias="occurrenceString") + patient: Reference = Field(alias="patient", serialization_alias="patient") + performer: PyList[ImmunizationPerformer] | None = Field(None, alias="performer", serialization_alias="performer") + primary_source: bool | None = Field(None, alias="primarySource", serialization_alias="primarySource") + program_eligibility: PyList[CodeableConcept] | None = Field(None, alias="programEligibility", serialization_alias="programEligibility") + protocol_applied: PyList[ImmunizationProtocolApplied] | None = Field(None, alias="protocolApplied", serialization_alias="protocolApplied") + reaction: PyList[ImmunizationReaction] | None = Field(None, alias="reaction", serialization_alias="reaction") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + recorded: str | None = Field(None, alias="recorded", serialization_alias="recorded") + report_origin: CodeableConcept | None = Field(None, alias="reportOrigin", serialization_alias="reportOrigin") + route: CodeableConcept | None = Field(None, alias="route", serialization_alias="route") + site: CodeableConcept | None = Field(None, alias="site", serialization_alias="site") + status: Literal["completed", "entered-in-error", "not-done"] = Field(alias="status", serialization_alias="status") + status_reason: CodeableConcept | None = Field(None, alias="statusReason", serialization_alias="statusReason") + subpotent_reason: PyList[CodeableConcept] | None = Field(None, alias="subpotentReason", serialization_alias="subpotentReason") + vaccine_code: CodeableConcept = Field(alias="vaccineCode", serialization_alias="vaccineCode") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Immunization: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/immunization_evaluation.py b/examples/python/generated/hl7_fhir_r4_core/immunization_evaluation.py new file mode 100644 index 000000000..02125e6d2 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/immunization_evaluation.py @@ -0,0 +1,45 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import CodeableConcept, Identifier, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ImmunizationEvaluation(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ImmunizationEvaluation', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ImmunizationEvaluation' + ) + authority: Reference | None = Field(None, alias="authority", serialization_alias="authority") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + dose_number_positive_int: PositiveInt | None = Field(None, alias="doseNumberPositiveInt", serialization_alias="doseNumberPositiveInt") + dose_number_string: str | None = Field(None, alias="doseNumberString", serialization_alias="doseNumberString") + dose_status: CodeableConcept = Field(alias="doseStatus", serialization_alias="doseStatus") + dose_status_reason: PyList[CodeableConcept] | None = Field(None, alias="doseStatusReason", serialization_alias="doseStatusReason") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + immunization_event: Reference = Field(alias="immunizationEvent", serialization_alias="immunizationEvent") + patient: Reference = Field(alias="patient", serialization_alias="patient") + series: str | None = Field(None, alias="series", serialization_alias="series") + series_doses_positive_int: PositiveInt | None = Field(None, alias="seriesDosesPositiveInt", serialization_alias="seriesDosesPositiveInt") + series_doses_string: str | None = Field(None, alias="seriesDosesString", serialization_alias="seriesDosesString") + status: Literal["completed", "entered-in-error"] = Field(alias="status", serialization_alias="status") + target_disease: CodeableConcept = Field(alias="targetDisease", serialization_alias="targetDisease") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ImmunizationEvaluation: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/immunization_recommendation.py b/examples/python/generated/hl7_fhir_r4_core/immunization_recommendation.py new file mode 100644 index 000000000..ae596c941 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/immunization_recommendation.py @@ -0,0 +1,58 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import BackboneElement, CodeableConcept, Identifier, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ImmunizationRecommendationRecommendation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + contraindicated_vaccine_code: PyList[CodeableConcept] | None = Field(None, alias="contraindicatedVaccineCode", serialization_alias="contraindicatedVaccineCode") + date_criterion: PyList[ImmunizationRecommendationRecommendationDateCriterion] | None = Field(None, alias="dateCriterion", serialization_alias="dateCriterion") + description: str | None = Field(None, alias="description", serialization_alias="description") + dose_number_positive_int: PositiveInt | None = Field(None, alias="doseNumberPositiveInt", serialization_alias="doseNumberPositiveInt") + dose_number_string: str | None = Field(None, alias="doseNumberString", serialization_alias="doseNumberString") + forecast_reason: PyList[CodeableConcept] | None = Field(None, alias="forecastReason", serialization_alias="forecastReason") + forecast_status: CodeableConcept = Field(alias="forecastStatus", serialization_alias="forecastStatus") + series: str | None = Field(None, alias="series", serialization_alias="series") + series_doses_positive_int: PositiveInt | None = Field(None, alias="seriesDosesPositiveInt", serialization_alias="seriesDosesPositiveInt") + series_doses_string: str | None = Field(None, alias="seriesDosesString", serialization_alias="seriesDosesString") + supporting_immunization: PyList[Reference] | None = Field(None, alias="supportingImmunization", serialization_alias="supportingImmunization") + supporting_patient_information: PyList[Reference] | None = Field(None, alias="supportingPatientInformation", serialization_alias="supportingPatientInformation") + target_disease: CodeableConcept | None = Field(None, alias="targetDisease", serialization_alias="targetDisease") + vaccine_code: PyList[CodeableConcept] | None = Field(None, alias="vaccineCode", serialization_alias="vaccineCode") + +class ImmunizationRecommendationRecommendationDateCriterion(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + value: str = Field(alias="value", serialization_alias="value") + + +class ImmunizationRecommendation(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ImmunizationRecommendation', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ImmunizationRecommendation' + ) + authority: Reference | None = Field(None, alias="authority", serialization_alias="authority") + date: str = Field(alias="date", serialization_alias="date") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + patient: Reference = Field(alias="patient", serialization_alias="patient") + recommendation: PyList[ImmunizationRecommendationRecommendation] = Field(alias="recommendation", serialization_alias="recommendation") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ImmunizationRecommendation: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/implementation_guide.py b/examples/python/generated/hl7_fhir_r4_core/implementation_guide.py new file mode 100644 index 000000000..044204633 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/implementation_guide.py @@ -0,0 +1,127 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, ContactDetail, Reference, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ImplementationGuideDefinition(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + grouping: PyList[ImplementationGuideDefinitionGrouping] | None = Field(None, alias="grouping", serialization_alias="grouping") + page: ImplementationGuideDefinitionPage | None = Field(None, alias="page", serialization_alias="page") + parameter: PyList[ImplementationGuideDefinitionParameter] | None = Field(None, alias="parameter", serialization_alias="parameter") + resource: PyList[ImplementationGuideDefinitionResource] = Field(alias="resource", serialization_alias="resource") + template: PyList[ImplementationGuideDefinitionTemplate] | None = Field(None, alias="template", serialization_alias="template") + +class ImplementationGuideDefinitionGrouping(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + name: str = Field(alias="name", serialization_alias="name") + +class ImplementationGuideDefinitionPage(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + generation: Literal["html", "markdown", "xml", "generated"] = Field(alias="generation", serialization_alias="generation") + name_reference: Reference | None = Field(None, alias="nameReference", serialization_alias="nameReference") + name_url: str | None = Field(None, alias="nameUrl", serialization_alias="nameUrl") + page: PyList[ImplementationGuideDefinitionPage] | None = Field(None, alias="page", serialization_alias="page") + title: str = Field(alias="title", serialization_alias="title") + +class ImplementationGuideDefinitionParameter(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: Literal["apply", "path-resource", "path-pages", "path-tx-cache", "expansion-parameter", "rule-broken-links", "generate-xml", "generate-json", "generate-turtle", "html-template"] = Field(alias="code", serialization_alias="code") + value: str = Field(alias="value", serialization_alias="value") + +class ImplementationGuideDefinitionResource(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + example_boolean: bool | None = Field(None, alias="exampleBoolean", serialization_alias="exampleBoolean") + example_canonical: str | None = Field(None, alias="exampleCanonical", serialization_alias="exampleCanonical") + fhir_version: PyList[Literal["0.01", "0.05", "0.06", "0.11", "0.0.80", "0.0.81", "0.0.82", "0.4.0", "0.5.0", "1.0.0", "1.0.1", "1.0.2", "1.1.0", "1.4.0", "1.6.0", "1.8.0", "3.0.0", "3.0.1", "3.3.0", "3.5.0", "4.0.0", "4.0.1"]] | None = Field(None, alias="fhirVersion", serialization_alias="fhirVersion") + grouping_id: str | None = Field(None, alias="groupingId", serialization_alias="groupingId") + name: str | None = Field(None, alias="name", serialization_alias="name") + reference: Reference = Field(alias="reference", serialization_alias="reference") + +class ImplementationGuideDefinitionTemplate(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: str = Field(alias="code", serialization_alias="code") + scope: str | None = Field(None, alias="scope", serialization_alias="scope") + source: str = Field(alias="source", serialization_alias="source") + +class ImplementationGuideDependsOn(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + package_id: str | None = Field(None, alias="packageId", serialization_alias="packageId") + uri: str = Field(alias="uri", serialization_alias="uri") + version: str | None = Field(None, alias="version", serialization_alias="version") + +class ImplementationGuideGlobal(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + profile: str = Field(alias="profile", serialization_alias="profile") + type: str = Field(alias="type", serialization_alias="type") + +class ImplementationGuideManifest(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + image: PyList[str] | None = Field(None, alias="image", serialization_alias="image") + other: PyList[str] | None = Field(None, alias="other", serialization_alias="other") + page: PyList[ImplementationGuideManifestPage] | None = Field(None, alias="page", serialization_alias="page") + rendering: str | None = Field(None, alias="rendering", serialization_alias="rendering") + resource: PyList[ImplementationGuideManifestResource] = Field(alias="resource", serialization_alias="resource") + +class ImplementationGuideManifestPage(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + anchor: PyList[str] | None = Field(None, alias="anchor", serialization_alias="anchor") + name: str = Field(alias="name", serialization_alias="name") + title: str | None = Field(None, alias="title", serialization_alias="title") + +class ImplementationGuideManifestResource(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + example_boolean: bool | None = Field(None, alias="exampleBoolean", serialization_alias="exampleBoolean") + example_canonical: str | None = Field(None, alias="exampleCanonical", serialization_alias="exampleCanonical") + reference: Reference = Field(alias="reference", serialization_alias="reference") + relative_path: str | None = Field(None, alias="relativePath", serialization_alias="relativePath") + + +class ImplementationGuide(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ImplementationGuide', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ImplementationGuide' + ) + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + definition: ImplementationGuideDefinition | None = Field(None, alias="definition", serialization_alias="definition") + depends_on: PyList[ImplementationGuideDependsOn] | None = Field(None, alias="dependsOn", serialization_alias="dependsOn") + description: str | None = Field(None, alias="description", serialization_alias="description") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + fhir_version: PyList[Literal["0.01", "0.05", "0.06", "0.11", "0.0.80", "0.0.81", "0.0.82", "0.4.0", "0.5.0", "1.0.0", "1.0.1", "1.0.2", "1.1.0", "1.4.0", "1.6.0", "1.8.0", "3.0.0", "3.0.1", "3.3.0", "3.5.0", "4.0.0", "4.0.1"]] = Field(alias="fhirVersion", serialization_alias="fhirVersion") + global_: PyList[ImplementationGuideGlobal] | None = Field(None, alias="global", serialization_alias="global") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + license: str | None = Field(None, alias="license", serialization_alias="license") + manifest: ImplementationGuideManifest | None = Field(None, alias="manifest", serialization_alias="manifest") + name: str = Field(alias="name", serialization_alias="name") + package_id: str = Field(alias="packageId", serialization_alias="packageId") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + title: str | None = Field(None, alias="title", serialization_alias="title") + url: str = Field(alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ImplementationGuide: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/insurance_plan.py b/examples/python/generated/hl7_fhir_r4_core/insurance_plan.py new file mode 100644 index 000000000..c51c66119 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/insurance_plan.py @@ -0,0 +1,105 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Address, BackboneElement, CodeableConcept, ContactPoint, HumanName, Identifier, Money, Period, Quantity, \ + Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class InsurancePlanContact(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + address: Address | None = Field(None, alias="address", serialization_alias="address") + name: HumanName | None = Field(None, alias="name", serialization_alias="name") + purpose: CodeableConcept | None = Field(None, alias="purpose", serialization_alias="purpose") + telecom: PyList[ContactPoint] | None = Field(None, alias="telecom", serialization_alias="telecom") + +class InsurancePlanCoverage(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + benefit: PyList[InsurancePlanCoverageBenefit] = Field(alias="benefit", serialization_alias="benefit") + network: PyList[Reference] | None = Field(None, alias="network", serialization_alias="network") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + +class InsurancePlanCoverageBenefit(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + limit: PyList[InsurancePlanCoverageBenefitLimit] | None = Field(None, alias="limit", serialization_alias="limit") + requirement: str | None = Field(None, alias="requirement", serialization_alias="requirement") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + +class InsurancePlanCoverageBenefitLimit(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + value: Quantity | None = Field(None, alias="value", serialization_alias="value") + +class InsurancePlanPlan(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + coverage_area: PyList[Reference] | None = Field(None, alias="coverageArea", serialization_alias="coverageArea") + general_cost: PyList[InsurancePlanPlanGeneralCost] | None = Field(None, alias="generalCost", serialization_alias="generalCost") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + network: PyList[Reference] | None = Field(None, alias="network", serialization_alias="network") + specific_cost: PyList[InsurancePlanPlanSpecificCost] | None = Field(None, alias="specificCost", serialization_alias="specificCost") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class InsurancePlanPlanGeneralCost(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + cost: Money | None = Field(None, alias="cost", serialization_alias="cost") + group_size: PositiveInt | None = Field(None, alias="groupSize", serialization_alias="groupSize") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class InsurancePlanPlanSpecificCost(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + benefit: PyList[InsurancePlanPlanSpecificCostBenefit] | None = Field(None, alias="benefit", serialization_alias="benefit") + category: CodeableConcept = Field(alias="category", serialization_alias="category") + +class InsurancePlanPlanSpecificCostBenefit(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + cost: PyList[InsurancePlanPlanSpecificCostBenefitCost] | None = Field(None, alias="cost", serialization_alias="cost") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + +class InsurancePlanPlanSpecificCostBenefitCost(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + applicability: CodeableConcept | None = Field(None, alias="applicability", serialization_alias="applicability") + qualifiers: PyList[CodeableConcept] | None = Field(None, alias="qualifiers", serialization_alias="qualifiers") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + value: Quantity | None = Field(None, alias="value", serialization_alias="value") + + +class InsurancePlan(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='InsurancePlan', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='InsurancePlan' + ) + administered_by: Reference | None = Field(None, alias="administeredBy", serialization_alias="administeredBy") + alias: PyList[str] | None = Field(None, alias="alias", serialization_alias="alias") + contact: PyList[InsurancePlanContact] | None = Field(None, alias="contact", serialization_alias="contact") + coverage: PyList[InsurancePlanCoverage] | None = Field(None, alias="coverage", serialization_alias="coverage") + coverage_area: PyList[Reference] | None = Field(None, alias="coverageArea", serialization_alias="coverageArea") + endpoint: PyList[Reference] | None = Field(None, alias="endpoint", serialization_alias="endpoint") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + name: str | None = Field(None, alias="name", serialization_alias="name") + network: PyList[Reference] | None = Field(None, alias="network", serialization_alias="network") + owned_by: Reference | None = Field(None, alias="ownedBy", serialization_alias="ownedBy") + period: Period | None = Field(None, alias="period", serialization_alias="period") + plan: PyList[InsurancePlanPlan] | None = Field(None, alias="plan", serialization_alias="plan") + status: Literal["draft", "active", "retired", "unknown"] | None = Field(None, alias="status", serialization_alias="status") + type: PyList[CodeableConcept] | None = Field(None, alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> InsurancePlan: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/invoice.py b/examples/python/generated/hl7_fhir_r4_core/invoice.py new file mode 100644 index 000000000..1600d65c3 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/invoice.py @@ -0,0 +1,68 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Identifier, Money, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class InvoiceLineItem(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + charge_item_codeable_concept: CodeableConcept | None = Field(None, alias="chargeItemCodeableConcept", serialization_alias="chargeItemCodeableConcept") + charge_item_reference: Reference | None = Field(None, alias="chargeItemReference", serialization_alias="chargeItemReference") + price_component: PyList[InvoiceLineItemPriceComponent] | None = Field(None, alias="priceComponent", serialization_alias="priceComponent") + sequence: PositiveInt | None = Field(None, alias="sequence", serialization_alias="sequence") + +class InvoiceLineItemPriceComponent(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount: Money | None = Field(None, alias="amount", serialization_alias="amount") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + factor: float | None = Field(None, alias="factor", serialization_alias="factor") + type: Literal["base", "surcharge", "deduction", "discount", "tax", "informational"] = Field(alias="type", serialization_alias="type") + +class InvoiceParticipant(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + actor: Reference = Field(alias="actor", serialization_alias="actor") + role: CodeableConcept | None = Field(None, alias="role", serialization_alias="role") + + +class Invoice(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Invoice', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Invoice' + ) + account: Reference | None = Field(None, alias="account", serialization_alias="account") + cancelled_reason: str | None = Field(None, alias="cancelledReason", serialization_alias="cancelledReason") + date: str | None = Field(None, alias="date", serialization_alias="date") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + issuer: Reference | None = Field(None, alias="issuer", serialization_alias="issuer") + line_item: PyList[InvoiceLineItem] | None = Field(None, alias="lineItem", serialization_alias="lineItem") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + participant: PyList[InvoiceParticipant] | None = Field(None, alias="participant", serialization_alias="participant") + payment_terms: str | None = Field(None, alias="paymentTerms", serialization_alias="paymentTerms") + recipient: Reference | None = Field(None, alias="recipient", serialization_alias="recipient") + status: Literal["draft", "issued", "balanced", "cancelled", "entered-in-error"] = Field(alias="status", serialization_alias="status") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + total_gross: Money | None = Field(None, alias="totalGross", serialization_alias="totalGross") + total_net: Money | None = Field(None, alias="totalNet", serialization_alias="totalNet") + total_price_component: PyList[InvoiceLineItemPriceComponent] | None = Field(None, alias="totalPriceComponent", serialization_alias="totalPriceComponent") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Invoice: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/library.py b/examples/python/generated/hl7_fhir_r4_core/library.py new file mode 100644 index 000000000..865384691 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/library.py @@ -0,0 +1,65 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Attachment, CodeableConcept, ContactDetail, DataRequirement, Identifier, ParameterDefinition, Period, \ + Reference, RelatedArtifact, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class Library(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Library', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Library' + ) + approval_date: str | None = Field(None, alias="approvalDate", serialization_alias="approvalDate") + author: PyList[ContactDetail] | None = Field(None, alias="author", serialization_alias="author") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + content: PyList[Attachment] | None = Field(None, alias="content", serialization_alias="content") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + data_requirement: PyList[DataRequirement] | None = Field(None, alias="dataRequirement", serialization_alias="dataRequirement") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + editor: PyList[ContactDetail] | None = Field(None, alias="editor", serialization_alias="editor") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + endorser: PyList[ContactDetail] | None = Field(None, alias="endorser", serialization_alias="endorser") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + last_review_date: str | None = Field(None, alias="lastReviewDate", serialization_alias="lastReviewDate") + name: str | None = Field(None, alias="name", serialization_alias="name") + parameter: PyList[ParameterDefinition] | None = Field(None, alias="parameter", serialization_alias="parameter") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + related_artifact: PyList[RelatedArtifact] | None = Field(None, alias="relatedArtifact", serialization_alias="relatedArtifact") + reviewer: PyList[ContactDetail] | None = Field(None, alias="reviewer", serialization_alias="reviewer") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + subject_codeable_concept: CodeableConcept | None = Field(None, alias="subjectCodeableConcept", serialization_alias="subjectCodeableConcept") + subject_reference: Reference | None = Field(None, alias="subjectReference", serialization_alias="subjectReference") + subtitle: str | None = Field(None, alias="subtitle", serialization_alias="subtitle") + title: str | None = Field(None, alias="title", serialization_alias="title") + topic: PyList[CodeableConcept] | None = Field(None, alias="topic", serialization_alias="topic") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + url: str | None = Field(None, alias="url", serialization_alias="url") + usage: str | None = Field(None, alias="usage", serialization_alias="usage") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Library: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/linkage.py b/examples/python/generated/hl7_fhir_r4_core/linkage.py new file mode 100644 index 000000000..a80b78447 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/linkage.py @@ -0,0 +1,39 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import BackboneElement, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class LinkageItem(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource: Reference = Field(alias="resource", serialization_alias="resource") + type: Literal["source", "alternate", "historical"] = Field(alias="type", serialization_alias="type") + + +class Linkage(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Linkage', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Linkage' + ) + active: bool | None = Field(None, alias="active", serialization_alias="active") + author: Reference | None = Field(None, alias="author", serialization_alias="author") + item: PyList[LinkageItem] = Field(alias="item", serialization_alias="item") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Linkage: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/list.py b/examples/python/generated/hl7_fhir_r4_core/list.py new file mode 100644 index 000000000..371ef2f96 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/list.py @@ -0,0 +1,53 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Identifier, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ListEntry(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + date: str | None = Field(None, alias="date", serialization_alias="date") + deleted: bool | None = Field(None, alias="deleted", serialization_alias="deleted") + flag: CodeableConcept | None = Field(None, alias="flag", serialization_alias="flag") + item: Reference = Field(alias="item", serialization_alias="item") + + +class List(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='List', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='List' + ) + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + date: str | None = Field(None, alias="date", serialization_alias="date") + empty_reason: CodeableConcept | None = Field(None, alias="emptyReason", serialization_alias="emptyReason") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + entry: PyList[ListEntry] | None = Field(None, alias="entry", serialization_alias="entry") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + mode: Literal["working", "snapshot", "changes"] = Field(alias="mode", serialization_alias="mode") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + ordered_by: CodeableConcept | None = Field(None, alias="orderedBy", serialization_alias="orderedBy") + source: Reference | None = Field(None, alias="source", serialization_alias="source") + status: Literal["current", "retired", "entered-in-error"] = Field(alias="status", serialization_alias="status") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + title: str | None = Field(None, alias="title", serialization_alias="title") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> List: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/location.py b/examples/python/generated/hl7_fhir_r4_core/location.py new file mode 100644 index 000000000..29883b415 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/location.py @@ -0,0 +1,63 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Address, BackboneElement, CodeableConcept, Coding, ContactPoint, Identifier, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class LocationHoursOfOperation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + all_day: bool | None = Field(None, alias="allDay", serialization_alias="allDay") + closing_time: str | None = Field(None, alias="closingTime", serialization_alias="closingTime") + days_of_week: PyList[Literal["mon", "tue", "wed", "thu", "fri", "sat", "sun"]] | None = Field(None, alias="daysOfWeek", serialization_alias="daysOfWeek") + opening_time: str | None = Field(None, alias="openingTime", serialization_alias="openingTime") + +class LocationPosition(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + altitude: float | None = Field(None, alias="altitude", serialization_alias="altitude") + latitude: float = Field(alias="latitude", serialization_alias="latitude") + longitude: float = Field(alias="longitude", serialization_alias="longitude") + + +class Location(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Location', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Location' + ) + address: Address | None = Field(None, alias="address", serialization_alias="address") + alias: PyList[str] | None = Field(None, alias="alias", serialization_alias="alias") + availability_exceptions: str | None = Field(None, alias="availabilityExceptions", serialization_alias="availabilityExceptions") + description: str | None = Field(None, alias="description", serialization_alias="description") + endpoint: PyList[Reference] | None = Field(None, alias="endpoint", serialization_alias="endpoint") + hours_of_operation: PyList[LocationHoursOfOperation] | None = Field(None, alias="hoursOfOperation", serialization_alias="hoursOfOperation") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + managing_organization: Reference | None = Field(None, alias="managingOrganization", serialization_alias="managingOrganization") + mode: Literal["instance", "kind"] | None = Field(None, alias="mode", serialization_alias="mode") + name: str | None = Field(None, alias="name", serialization_alias="name") + operational_status: Coding | None = Field(None, alias="operationalStatus", serialization_alias="operationalStatus") + part_of: Reference | None = Field(None, alias="partOf", serialization_alias="partOf") + physical_type: CodeableConcept | None = Field(None, alias="physicalType", serialization_alias="physicalType") + position: LocationPosition | None = Field(None, alias="position", serialization_alias="position") + status: Literal["active", "suspended", "inactive"] | None = Field(None, alias="status", serialization_alias="status") + telecom: PyList[ContactPoint] | None = Field(None, alias="telecom", serialization_alias="telecom") + type: PyList[CodeableConcept] | None = Field(None, alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Location: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/measure.py b/examples/python/generated/hl7_fhir_r4_core/measure.py new file mode 100644 index 000000000..dc42bf11f --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/measure.py @@ -0,0 +1,109 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, ContactDetail, Expression, Identifier, Period, Reference, RelatedArtifact, \ + UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MeasureGroup(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + description: str | None = Field(None, alias="description", serialization_alias="description") + population: PyList[MeasureGroupPopulation] | None = Field(None, alias="population", serialization_alias="population") + stratifier: PyList[MeasureGroupStratifier] | None = Field(None, alias="stratifier", serialization_alias="stratifier") + +class MeasureGroupPopulation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + criteria: Expression = Field(alias="criteria", serialization_alias="criteria") + description: str | None = Field(None, alias="description", serialization_alias="description") + +class MeasureGroupStratifier(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + component: PyList[MeasureGroupStratifierComponent] | None = Field(None, alias="component", serialization_alias="component") + criteria: Expression | None = Field(None, alias="criteria", serialization_alias="criteria") + description: str | None = Field(None, alias="description", serialization_alias="description") + +class MeasureGroupStratifierComponent(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + criteria: Expression = Field(alias="criteria", serialization_alias="criteria") + description: str | None = Field(None, alias="description", serialization_alias="description") + +class MeasureSupplementalData(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + criteria: Expression = Field(alias="criteria", serialization_alias="criteria") + description: str | None = Field(None, alias="description", serialization_alias="description") + usage: PyList[CodeableConcept] | None = Field(None, alias="usage", serialization_alias="usage") + + +class Measure(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Measure', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Measure' + ) + approval_date: str | None = Field(None, alias="approvalDate", serialization_alias="approvalDate") + author: PyList[ContactDetail] | None = Field(None, alias="author", serialization_alias="author") + clinical_recommendation_statement: str | None = Field(None, alias="clinicalRecommendationStatement", serialization_alias="clinicalRecommendationStatement") + composite_scoring: CodeableConcept | None = Field(None, alias="compositeScoring", serialization_alias="compositeScoring") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + definition: PyList[str] | None = Field(None, alias="definition", serialization_alias="definition") + description: str | None = Field(None, alias="description", serialization_alias="description") + disclaimer: str | None = Field(None, alias="disclaimer", serialization_alias="disclaimer") + editor: PyList[ContactDetail] | None = Field(None, alias="editor", serialization_alias="editor") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + endorser: PyList[ContactDetail] | None = Field(None, alias="endorser", serialization_alias="endorser") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + group: PyList[MeasureGroup] | None = Field(None, alias="group", serialization_alias="group") + guidance: str | None = Field(None, alias="guidance", serialization_alias="guidance") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + improvement_notation: CodeableConcept | None = Field(None, alias="improvementNotation", serialization_alias="improvementNotation") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + last_review_date: str | None = Field(None, alias="lastReviewDate", serialization_alias="lastReviewDate") + library: PyList[str] | None = Field(None, alias="library", serialization_alias="library") + name: str | None = Field(None, alias="name", serialization_alias="name") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + rate_aggregation: str | None = Field(None, alias="rateAggregation", serialization_alias="rateAggregation") + rationale: str | None = Field(None, alias="rationale", serialization_alias="rationale") + related_artifact: PyList[RelatedArtifact] | None = Field(None, alias="relatedArtifact", serialization_alias="relatedArtifact") + reviewer: PyList[ContactDetail] | None = Field(None, alias="reviewer", serialization_alias="reviewer") + risk_adjustment: str | None = Field(None, alias="riskAdjustment", serialization_alias="riskAdjustment") + scoring: CodeableConcept | None = Field(None, alias="scoring", serialization_alias="scoring") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + subject_codeable_concept: CodeableConcept | None = Field(None, alias="subjectCodeableConcept", serialization_alias="subjectCodeableConcept") + subject_reference: Reference | None = Field(None, alias="subjectReference", serialization_alias="subjectReference") + subtitle: str | None = Field(None, alias="subtitle", serialization_alias="subtitle") + supplemental_data: PyList[MeasureSupplementalData] | None = Field(None, alias="supplementalData", serialization_alias="supplementalData") + title: str | None = Field(None, alias="title", serialization_alias="title") + topic: PyList[CodeableConcept] | None = Field(None, alias="topic", serialization_alias="topic") + type: PyList[CodeableConcept] | None = Field(None, alias="type", serialization_alias="type") + url: str | None = Field(None, alias="url", serialization_alias="url") + usage: str | None = Field(None, alias="usage", serialization_alias="usage") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Measure: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/measure_report.py b/examples/python/generated/hl7_fhir_r4_core/measure_report.py new file mode 100644 index 000000000..05d91fafd --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/measure_report.py @@ -0,0 +1,80 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Period, Quantity, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MeasureReportGroup(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + measure_score: Quantity | None = Field(None, alias="measureScore", serialization_alias="measureScore") + population: PyList[MeasureReportGroupPopulation] | None = Field(None, alias="population", serialization_alias="population") + stratifier: PyList[MeasureReportGroupStratifier] | None = Field(None, alias="stratifier", serialization_alias="stratifier") + +class MeasureReportGroupPopulation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + count: int | None = Field(None, alias="count", serialization_alias="count") + subject_results: Reference | None = Field(None, alias="subjectResults", serialization_alias="subjectResults") + +class MeasureReportGroupStratifier(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: PyList[CodeableConcept] | None = Field(None, alias="code", serialization_alias="code") + stratum: PyList[MeasureReportGroupStratifierStratum] | None = Field(None, alias="stratum", serialization_alias="stratum") + +class MeasureReportGroupStratifierStratum(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + component: PyList[MeasureReportGroupStratifierStratumComponent] | None = Field(None, alias="component", serialization_alias="component") + measure_score: Quantity | None = Field(None, alias="measureScore", serialization_alias="measureScore") + population: PyList[MeasureReportGroupStratifierStratumPopulation] | None = Field(None, alias="population", serialization_alias="population") + value: CodeableConcept | None = Field(None, alias="value", serialization_alias="value") + +class MeasureReportGroupStratifierStratumComponent(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + value: CodeableConcept = Field(alias="value", serialization_alias="value") + +class MeasureReportGroupStratifierStratumPopulation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + count: int | None = Field(None, alias="count", serialization_alias="count") + subject_results: Reference | None = Field(None, alias="subjectResults", serialization_alias="subjectResults") + + +class MeasureReport(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MeasureReport', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MeasureReport' + ) + date: str | None = Field(None, alias="date", serialization_alias="date") + evaluated_resource: PyList[Reference] | None = Field(None, alias="evaluatedResource", serialization_alias="evaluatedResource") + group: PyList[MeasureReportGroup] | None = Field(None, alias="group", serialization_alias="group") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + improvement_notation: CodeableConcept | None = Field(None, alias="improvementNotation", serialization_alias="improvementNotation") + measure: str = Field(alias="measure", serialization_alias="measure") + period: Period = Field(alias="period", serialization_alias="period") + reporter: Reference | None = Field(None, alias="reporter", serialization_alias="reporter") + status: Literal["complete", "pending", "error"] = Field(alias="status", serialization_alias="status") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + type: Literal["individual", "subject-list", "summary", "data-collection"] = Field(alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MeasureReport: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/media.py b/examples/python/generated/hl7_fhir_r4_core/media.py new file mode 100644 index 000000000..384bcd09d --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/media.py @@ -0,0 +1,55 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, Attachment, CodeableConcept, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class Media(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Media', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Media' + ) + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + body_site: CodeableConcept | None = Field(None, alias="bodySite", serialization_alias="bodySite") + content: Attachment = Field(alias="content", serialization_alias="content") + created_date_time: str | None = Field(None, alias="createdDateTime", serialization_alias="createdDateTime") + created_period: Period | None = Field(None, alias="createdPeriod", serialization_alias="createdPeriod") + device: Reference | None = Field(None, alias="device", serialization_alias="device") + device_name: str | None = Field(None, alias="deviceName", serialization_alias="deviceName") + duration: float | None = Field(None, alias="duration", serialization_alias="duration") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + frames: PositiveInt | None = Field(None, alias="frames", serialization_alias="frames") + height: PositiveInt | None = Field(None, alias="height", serialization_alias="height") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + issued: str | None = Field(None, alias="issued", serialization_alias="issued") + modality: CodeableConcept | None = Field(None, alias="modality", serialization_alias="modality") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + operator: Reference | None = Field(None, alias="operator", serialization_alias="operator") + part_of: PyList[Reference] | None = Field(None, alias="partOf", serialization_alias="partOf") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + status: Literal["preparation", "in-progress", "not-done", "on-hold", "stopped", "completed", "entered-in-error", "unknown"] = Field(alias="status", serialization_alias="status") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + view: CodeableConcept | None = Field(None, alias="view", serialization_alias="view") + width: PositiveInt | None = Field(None, alias="width", serialization_alias="width") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Media: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/medication.py b/examples/python/generated/hl7_fhir_r4_core/medication.py new file mode 100644 index 000000000..df66055a6 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/medication.py @@ -0,0 +1,53 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Ratio, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MedicationBatch(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + expiration_date: str | None = Field(None, alias="expirationDate", serialization_alias="expirationDate") + lot_number: str | None = Field(None, alias="lotNumber", serialization_alias="lotNumber") + +class MedicationIngredient(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + is_active: bool | None = Field(None, alias="isActive", serialization_alias="isActive") + item_codeable_concept: CodeableConcept | None = Field(None, alias="itemCodeableConcept", serialization_alias="itemCodeableConcept") + item_reference: Reference | None = Field(None, alias="itemReference", serialization_alias="itemReference") + strength: Ratio | None = Field(None, alias="strength", serialization_alias="strength") + + +class Medication(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Medication', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Medication' + ) + amount: Ratio | None = Field(None, alias="amount", serialization_alias="amount") + batch: MedicationBatch | None = Field(None, alias="batch", serialization_alias="batch") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + form: CodeableConcept | None = Field(None, alias="form", serialization_alias="form") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + ingredient: PyList[MedicationIngredient] | None = Field(None, alias="ingredient", serialization_alias="ingredient") + manufacturer: Reference | None = Field(None, alias="manufacturer", serialization_alias="manufacturer") + status: Literal["active", "inactive", "entered-in-error"] | None = Field(None, alias="status", serialization_alias="status") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Medication: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/medication_administration.py b/examples/python/generated/hl7_fhir_r4_core/medication_administration.py new file mode 100644 index 000000000..5eef0ef8d --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/medication_administration.py @@ -0,0 +1,69 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Identifier, Period, Quantity, Ratio, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MedicationAdministrationDosage(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + dose: Quantity | None = Field(None, alias="dose", serialization_alias="dose") + method: CodeableConcept | None = Field(None, alias="method", serialization_alias="method") + rate_quantity: Quantity | None = Field(None, alias="rateQuantity", serialization_alias="rateQuantity") + rate_ratio: Ratio | None = Field(None, alias="rateRatio", serialization_alias="rateRatio") + route: CodeableConcept | None = Field(None, alias="route", serialization_alias="route") + site: CodeableConcept | None = Field(None, alias="site", serialization_alias="site") + text: str | None = Field(None, alias="text", serialization_alias="text") + +class MedicationAdministrationPerformer(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + actor: Reference = Field(alias="actor", serialization_alias="actor") + function: CodeableConcept | None = Field(None, alias="function", serialization_alias="function") + + +class MedicationAdministration(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MedicationAdministration', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MedicationAdministration' + ) + category: CodeableConcept | None = Field(None, alias="category", serialization_alias="category") + context: Reference | None = Field(None, alias="context", serialization_alias="context") + device: PyList[Reference] | None = Field(None, alias="device", serialization_alias="device") + dosage: MedicationAdministrationDosage | None = Field(None, alias="dosage", serialization_alias="dosage") + effective_date_time: str | None = Field(None, alias="effectiveDateTime", serialization_alias="effectiveDateTime") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + event_history: PyList[Reference] | None = Field(None, alias="eventHistory", serialization_alias="eventHistory") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + instantiates: PyList[str] | None = Field(None, alias="instantiates", serialization_alias="instantiates") + medication_codeable_concept: CodeableConcept | None = Field(None, alias="medicationCodeableConcept", serialization_alias="medicationCodeableConcept") + medication_reference: Reference | None = Field(None, alias="medicationReference", serialization_alias="medicationReference") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + part_of: PyList[Reference] | None = Field(None, alias="partOf", serialization_alias="partOf") + performer: PyList[MedicationAdministrationPerformer] | None = Field(None, alias="performer", serialization_alias="performer") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + request: Reference | None = Field(None, alias="request", serialization_alias="request") + status: Literal["in-progress", "not-done", "on-hold", "completed", "entered-in-error", "stopped", "unknown"] = Field(alias="status", serialization_alias="status") + status_reason: PyList[CodeableConcept] | None = Field(None, alias="statusReason", serialization_alias="statusReason") + subject: Reference = Field(alias="subject", serialization_alias="subject") + supporting_information: PyList[Reference] | None = Field(None, alias="supportingInformation", serialization_alias="supportingInformation") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MedicationAdministration: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/medication_dispense.py b/examples/python/generated/hl7_fhir_r4_core/medication_dispense.py new file mode 100644 index 000000000..e2ea14488 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/medication_dispense.py @@ -0,0 +1,71 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Dosage, Identifier, Quantity, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MedicationDispensePerformer(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + actor: Reference = Field(alias="actor", serialization_alias="actor") + function: CodeableConcept | None = Field(None, alias="function", serialization_alias="function") + +class MedicationDispenseSubstitution(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + reason: PyList[CodeableConcept] | None = Field(None, alias="reason", serialization_alias="reason") + responsible_party: PyList[Reference] | None = Field(None, alias="responsibleParty", serialization_alias="responsibleParty") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + was_substituted: bool = Field(alias="wasSubstituted", serialization_alias="wasSubstituted") + + +class MedicationDispense(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MedicationDispense', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MedicationDispense' + ) + authorizing_prescription: PyList[Reference] | None = Field(None, alias="authorizingPrescription", serialization_alias="authorizingPrescription") + category: CodeableConcept | None = Field(None, alias="category", serialization_alias="category") + context: Reference | None = Field(None, alias="context", serialization_alias="context") + days_supply: Quantity | None = Field(None, alias="daysSupply", serialization_alias="daysSupply") + destination: Reference | None = Field(None, alias="destination", serialization_alias="destination") + detected_issue: PyList[Reference] | None = Field(None, alias="detectedIssue", serialization_alias="detectedIssue") + dosage_instruction: PyList[Dosage] | None = Field(None, alias="dosageInstruction", serialization_alias="dosageInstruction") + event_history: PyList[Reference] | None = Field(None, alias="eventHistory", serialization_alias="eventHistory") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + location: Reference | None = Field(None, alias="location", serialization_alias="location") + medication_codeable_concept: CodeableConcept | None = Field(None, alias="medicationCodeableConcept", serialization_alias="medicationCodeableConcept") + medication_reference: Reference | None = Field(None, alias="medicationReference", serialization_alias="medicationReference") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + part_of: PyList[Reference] | None = Field(None, alias="partOf", serialization_alias="partOf") + performer: PyList[MedicationDispensePerformer] | None = Field(None, alias="performer", serialization_alias="performer") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + receiver: PyList[Reference] | None = Field(None, alias="receiver", serialization_alias="receiver") + status: Literal["preparation", "in-progress", "cancelled", "on-hold", "completed", "entered-in-error", "stopped", "declined", "unknown"] = Field(alias="status", serialization_alias="status") + status_reason_codeable_concept: CodeableConcept | None = Field(None, alias="statusReasonCodeableConcept", serialization_alias="statusReasonCodeableConcept") + status_reason_reference: Reference | None = Field(None, alias="statusReasonReference", serialization_alias="statusReasonReference") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + substitution: MedicationDispenseSubstitution | None = Field(None, alias="substitution", serialization_alias="substitution") + supporting_information: PyList[Reference] | None = Field(None, alias="supportingInformation", serialization_alias="supportingInformation") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + when_handed_over: str | None = Field(None, alias="whenHandedOver", serialization_alias="whenHandedOver") + when_prepared: str | None = Field(None, alias="whenPrepared", serialization_alias="whenPrepared") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MedicationDispense: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/medication_knowledge.py b/examples/python/generated/hl7_fhir_r4_core/medication_knowledge.py new file mode 100644 index 000000000..bca057c84 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/medication_knowledge.py @@ -0,0 +1,146 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Dosage, Duration, Money, Quantity, Ratio, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MedicationKnowledgeAdministrationGuidelines(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + dosage: PyList[MedicationKnowledgeAdministrationGuidelinesDosage] | None = Field(None, alias="dosage", serialization_alias="dosage") + indication_codeable_concept: CodeableConcept | None = Field(None, alias="indicationCodeableConcept", serialization_alias="indicationCodeableConcept") + indication_reference: Reference | None = Field(None, alias="indicationReference", serialization_alias="indicationReference") + patient_characteristics: PyList[MedicationKnowledgeAdministrationGuidelinesPatientCharacteristics] | None = Field(None, alias="patientCharacteristics", serialization_alias="patientCharacteristics") + +class MedicationKnowledgeAdministrationGuidelinesDosage(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + dosage: PyList[Dosage] = Field(alias="dosage", serialization_alias="dosage") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + +class MedicationKnowledgeAdministrationGuidelinesPatientCharacteristics(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + characteristic_codeable_concept: CodeableConcept | None = Field(None, alias="characteristicCodeableConcept", serialization_alias="characteristicCodeableConcept") + characteristic_quantity: Quantity | None = Field(None, alias="characteristicQuantity", serialization_alias="characteristicQuantity") + value: PyList[str] | None = Field(None, alias="value", serialization_alias="value") + +class MedicationKnowledgeCost(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + cost: Money = Field(alias="cost", serialization_alias="cost") + source: str | None = Field(None, alias="source", serialization_alias="source") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + +class MedicationKnowledgeDrugCharacteristic(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + value_base64binary: str | None = Field(None, alias="valueBase64Binary", serialization_alias="valueBase64Binary") + value_codeable_concept: CodeableConcept | None = Field(None, alias="valueCodeableConcept", serialization_alias="valueCodeableConcept") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + +class MedicationKnowledgeIngredient(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + is_active: bool | None = Field(None, alias="isActive", serialization_alias="isActive") + item_codeable_concept: CodeableConcept | None = Field(None, alias="itemCodeableConcept", serialization_alias="itemCodeableConcept") + item_reference: Reference | None = Field(None, alias="itemReference", serialization_alias="itemReference") + strength: Ratio | None = Field(None, alias="strength", serialization_alias="strength") + +class MedicationKnowledgeKinetics(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + area_under_curve: PyList[Quantity] | None = Field(None, alias="areaUnderCurve", serialization_alias="areaUnderCurve") + half_life_period: Duration | None = Field(None, alias="halfLifePeriod", serialization_alias="halfLifePeriod") + lethal_dose50: PyList[Quantity] | None = Field(None, alias="lethalDose50", serialization_alias="lethalDose50") + +class MedicationKnowledgeMedicineClassification(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + classification: PyList[CodeableConcept] | None = Field(None, alias="classification", serialization_alias="classification") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + +class MedicationKnowledgeMonitoringProgram(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + name: str | None = Field(None, alias="name", serialization_alias="name") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class MedicationKnowledgeMonograph(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + source: Reference | None = Field(None, alias="source", serialization_alias="source") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class MedicationKnowledgePackaging(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class MedicationKnowledgeRegulatory(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + max_dispense: MedicationKnowledgeRegulatoryMaxDispense | None = Field(None, alias="maxDispense", serialization_alias="maxDispense") + regulatory_authority: Reference = Field(alias="regulatoryAuthority", serialization_alias="regulatoryAuthority") + schedule: PyList[MedicationKnowledgeRegulatorySchedule] | None = Field(None, alias="schedule", serialization_alias="schedule") + substitution: PyList[MedicationKnowledgeRegulatorySubstitution] | None = Field(None, alias="substitution", serialization_alias="substitution") + +class MedicationKnowledgeRegulatoryMaxDispense(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + period: Duration | None = Field(None, alias="period", serialization_alias="period") + quantity: Quantity = Field(alias="quantity", serialization_alias="quantity") + +class MedicationKnowledgeRegulatorySchedule(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + schedule: CodeableConcept = Field(alias="schedule", serialization_alias="schedule") + +class MedicationKnowledgeRegulatorySubstitution(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + allowed: bool = Field(alias="allowed", serialization_alias="allowed") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + +class MedicationKnowledgeRelatedMedicationKnowledge(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + reference: PyList[Reference] = Field(alias="reference", serialization_alias="reference") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + + +class MedicationKnowledge(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MedicationKnowledge', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MedicationKnowledge' + ) + administration_guidelines: PyList[MedicationKnowledgeAdministrationGuidelines] | None = Field(None, alias="administrationGuidelines", serialization_alias="administrationGuidelines") + amount: Quantity | None = Field(None, alias="amount", serialization_alias="amount") + associated_medication: PyList[Reference] | None = Field(None, alias="associatedMedication", serialization_alias="associatedMedication") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + contraindication: PyList[Reference] | None = Field(None, alias="contraindication", serialization_alias="contraindication") + cost: PyList[MedicationKnowledgeCost] | None = Field(None, alias="cost", serialization_alias="cost") + dose_form: CodeableConcept | None = Field(None, alias="doseForm", serialization_alias="doseForm") + drug_characteristic: PyList[MedicationKnowledgeDrugCharacteristic] | None = Field(None, alias="drugCharacteristic", serialization_alias="drugCharacteristic") + ingredient: PyList[MedicationKnowledgeIngredient] | None = Field(None, alias="ingredient", serialization_alias="ingredient") + intended_route: PyList[CodeableConcept] | None = Field(None, alias="intendedRoute", serialization_alias="intendedRoute") + kinetics: PyList[MedicationKnowledgeKinetics] | None = Field(None, alias="kinetics", serialization_alias="kinetics") + manufacturer: Reference | None = Field(None, alias="manufacturer", serialization_alias="manufacturer") + medicine_classification: PyList[MedicationKnowledgeMedicineClassification] | None = Field(None, alias="medicineClassification", serialization_alias="medicineClassification") + monitoring_program: PyList[MedicationKnowledgeMonitoringProgram] | None = Field(None, alias="monitoringProgram", serialization_alias="monitoringProgram") + monograph: PyList[MedicationKnowledgeMonograph] | None = Field(None, alias="monograph", serialization_alias="monograph") + packaging: MedicationKnowledgePackaging | None = Field(None, alias="packaging", serialization_alias="packaging") + preparation_instruction: str | None = Field(None, alias="preparationInstruction", serialization_alias="preparationInstruction") + product_type: PyList[CodeableConcept] | None = Field(None, alias="productType", serialization_alias="productType") + regulatory: PyList[MedicationKnowledgeRegulatory] | None = Field(None, alias="regulatory", serialization_alias="regulatory") + related_medication_knowledge: PyList[MedicationKnowledgeRelatedMedicationKnowledge] | None = Field(None, alias="relatedMedicationKnowledge", serialization_alias="relatedMedicationKnowledge") + status: Literal["active", "inactive", "entered-in-error"] | None = Field(None, alias="status", serialization_alias="status") + synonym: PyList[str] | None = Field(None, alias="synonym", serialization_alias="synonym") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MedicationKnowledge: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/medication_request.py b/examples/python/generated/hl7_fhir_r4_core/medication_request.py new file mode 100644 index 000000000..f9c9791f8 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/medication_request.py @@ -0,0 +1,88 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Dosage, Duration, Identifier, Period, Quantity, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MedicationRequestDispenseRequest(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + dispense_interval: Duration | None = Field(None, alias="dispenseInterval", serialization_alias="dispenseInterval") + expected_supply_duration: Duration | None = Field(None, alias="expectedSupplyDuration", serialization_alias="expectedSupplyDuration") + initial_fill: MedicationRequestDispenseRequestInitialFill | None = Field(None, alias="initialFill", serialization_alias="initialFill") + number_of_repeats_allowed: int | None = Field(None, alias="numberOfRepeatsAllowed", serialization_alias="numberOfRepeatsAllowed") + performer: Reference | None = Field(None, alias="performer", serialization_alias="performer") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + validity_period: Period | None = Field(None, alias="validityPeriod", serialization_alias="validityPeriod") + +class MedicationRequestDispenseRequestInitialFill(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + duration: Duration | None = Field(None, alias="duration", serialization_alias="duration") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + +class MedicationRequestSubstitution(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + allowed_boolean: bool | None = Field(None, alias="allowedBoolean", serialization_alias="allowedBoolean") + allowed_codeable_concept: CodeableConcept | None = Field(None, alias="allowedCodeableConcept", serialization_alias="allowedCodeableConcept") + reason: CodeableConcept | None = Field(None, alias="reason", serialization_alias="reason") + + +class MedicationRequest(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MedicationRequest', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MedicationRequest' + ) + authored_on: str | None = Field(None, alias="authoredOn", serialization_alias="authoredOn") + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + course_of_therapy_type: CodeableConcept | None = Field(None, alias="courseOfTherapyType", serialization_alias="courseOfTherapyType") + detected_issue: PyList[Reference] | None = Field(None, alias="detectedIssue", serialization_alias="detectedIssue") + dispense_request: MedicationRequestDispenseRequest | None = Field(None, alias="dispenseRequest", serialization_alias="dispenseRequest") + do_not_perform: bool | None = Field(None, alias="doNotPerform", serialization_alias="doNotPerform") + dosage_instruction: PyList[Dosage] | None = Field(None, alias="dosageInstruction", serialization_alias="dosageInstruction") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + event_history: PyList[Reference] | None = Field(None, alias="eventHistory", serialization_alias="eventHistory") + group_identifier: Identifier | None = Field(None, alias="groupIdentifier", serialization_alias="groupIdentifier") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + instantiates_canonical: PyList[str] | None = Field(None, alias="instantiatesCanonical", serialization_alias="instantiatesCanonical") + instantiates_uri: PyList[str] | None = Field(None, alias="instantiatesUri", serialization_alias="instantiatesUri") + insurance: PyList[Reference] | None = Field(None, alias="insurance", serialization_alias="insurance") + intent: Literal["proposal", "plan", "order", "original-order", "reflex-order", "filler-order", "instance-order", "option"] = Field(alias="intent", serialization_alias="intent") + medication_codeable_concept: CodeableConcept | None = Field(None, alias="medicationCodeableConcept", serialization_alias="medicationCodeableConcept") + medication_reference: Reference | None = Field(None, alias="medicationReference", serialization_alias="medicationReference") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + performer: Reference | None = Field(None, alias="performer", serialization_alias="performer") + performer_type: CodeableConcept | None = Field(None, alias="performerType", serialization_alias="performerType") + priority: Literal["routine", "urgent", "asap", "stat"] | None = Field(None, alias="priority", serialization_alias="priority") + prior_prescription: Reference | None = Field(None, alias="priorPrescription", serialization_alias="priorPrescription") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + recorder: Reference | None = Field(None, alias="recorder", serialization_alias="recorder") + reported_boolean: bool | None = Field(None, alias="reportedBoolean", serialization_alias="reportedBoolean") + reported_reference: Reference | None = Field(None, alias="reportedReference", serialization_alias="reportedReference") + requester: Reference | None = Field(None, alias="requester", serialization_alias="requester") + status: Literal["active", "on-hold", "cancelled", "completed", "entered-in-error", "stopped", "draft", "unknown"] = Field(alias="status", serialization_alias="status") + status_reason: CodeableConcept | None = Field(None, alias="statusReason", serialization_alias="statusReason") + subject: Reference = Field(alias="subject", serialization_alias="subject") + substitution: MedicationRequestSubstitution | None = Field(None, alias="substitution", serialization_alias="substitution") + supporting_information: PyList[Reference] | None = Field(None, alias="supportingInformation", serialization_alias="supportingInformation") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MedicationRequest: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/medication_statement.py b/examples/python/generated/hl7_fhir_r4_core/medication_statement.py new file mode 100644 index 000000000..a255972f7 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/medication_statement.py @@ -0,0 +1,51 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, CodeableConcept, Dosage, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MedicationStatement(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MedicationStatement', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MedicationStatement' + ) + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + category: CodeableConcept | None = Field(None, alias="category", serialization_alias="category") + context: Reference | None = Field(None, alias="context", serialization_alias="context") + date_asserted: str | None = Field(None, alias="dateAsserted", serialization_alias="dateAsserted") + derived_from: PyList[Reference] | None = Field(None, alias="derivedFrom", serialization_alias="derivedFrom") + dosage: PyList[Dosage] | None = Field(None, alias="dosage", serialization_alias="dosage") + effective_date_time: str | None = Field(None, alias="effectiveDateTime", serialization_alias="effectiveDateTime") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + information_source: Reference | None = Field(None, alias="informationSource", serialization_alias="informationSource") + medication_codeable_concept: CodeableConcept | None = Field(None, alias="medicationCodeableConcept", serialization_alias="medicationCodeableConcept") + medication_reference: Reference | None = Field(None, alias="medicationReference", serialization_alias="medicationReference") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + part_of: PyList[Reference] | None = Field(None, alias="partOf", serialization_alias="partOf") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + status: Literal["active", "completed", "entered-in-error", "intended", "stopped", "on-hold", "unknown", "not-taken"] = Field(alias="status", serialization_alias="status") + status_reason: PyList[CodeableConcept] | None = Field(None, alias="statusReason", serialization_alias="statusReason") + subject: Reference = Field(alias="subject", serialization_alias="subject") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MedicationStatement: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/medicinal_product.py b/examples/python/generated/hl7_fhir_r4_core/medicinal_product.py new file mode 100644 index 000000000..45b2cac23 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/medicinal_product.py @@ -0,0 +1,90 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Coding, Identifier, MarketingStatus, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MedicinalProductManufacturingBusinessOperation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + authorisation_reference_number: Identifier | None = Field(None, alias="authorisationReferenceNumber", serialization_alias="authorisationReferenceNumber") + confidentiality_indicator: CodeableConcept | None = Field(None, alias="confidentialityIndicator", serialization_alias="confidentialityIndicator") + effective_date: str | None = Field(None, alias="effectiveDate", serialization_alias="effectiveDate") + manufacturer: PyList[Reference] | None = Field(None, alias="manufacturer", serialization_alias="manufacturer") + operation_type: CodeableConcept | None = Field(None, alias="operationType", serialization_alias="operationType") + regulator: Reference | None = Field(None, alias="regulator", serialization_alias="regulator") + +class MedicinalProductName(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + country_language: PyList[MedicinalProductNameCountryLanguage] | None = Field(None, alias="countryLanguage", serialization_alias="countryLanguage") + name_part: PyList[MedicinalProductNameNamePart] | None = Field(None, alias="namePart", serialization_alias="namePart") + product_name: str = Field(alias="productName", serialization_alias="productName") + +class MedicinalProductNameCountryLanguage(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + country: CodeableConcept = Field(alias="country", serialization_alias="country") + jurisdiction: CodeableConcept | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + language: CodeableConcept = Field(alias="language", serialization_alias="language") + +class MedicinalProductNameNamePart(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + part: str = Field(alias="part", serialization_alias="part") + type: Coding = Field(alias="type", serialization_alias="type") + +class MedicinalProductSpecialDesignation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + date: str | None = Field(None, alias="date", serialization_alias="date") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + indication_codeable_concept: CodeableConcept | None = Field(None, alias="indicationCodeableConcept", serialization_alias="indicationCodeableConcept") + indication_reference: Reference | None = Field(None, alias="indicationReference", serialization_alias="indicationReference") + intended_use: CodeableConcept | None = Field(None, alias="intendedUse", serialization_alias="intendedUse") + species: CodeableConcept | None = Field(None, alias="species", serialization_alias="species") + status: CodeableConcept | None = Field(None, alias="status", serialization_alias="status") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + +class MedicinalProduct(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MedicinalProduct', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MedicinalProduct' + ) + additional_monitoring_indicator: CodeableConcept | None = Field(None, alias="additionalMonitoringIndicator", serialization_alias="additionalMonitoringIndicator") + attached_document: PyList[Reference] | None = Field(None, alias="attachedDocument", serialization_alias="attachedDocument") + clinical_trial: PyList[Reference] | None = Field(None, alias="clinicalTrial", serialization_alias="clinicalTrial") + combined_pharmaceutical_dose_form: CodeableConcept | None = Field(None, alias="combinedPharmaceuticalDoseForm", serialization_alias="combinedPharmaceuticalDoseForm") + contact: PyList[Reference] | None = Field(None, alias="contact", serialization_alias="contact") + cross_reference: PyList[Identifier] | None = Field(None, alias="crossReference", serialization_alias="crossReference") + domain: Coding | None = Field(None, alias="domain", serialization_alias="domain") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + legal_status_of_supply: CodeableConcept | None = Field(None, alias="legalStatusOfSupply", serialization_alias="legalStatusOfSupply") + manufacturing_business_operation: PyList[MedicinalProductManufacturingBusinessOperation] | None = Field(None, alias="manufacturingBusinessOperation", serialization_alias="manufacturingBusinessOperation") + marketing_status: PyList[MarketingStatus] | None = Field(None, alias="marketingStatus", serialization_alias="marketingStatus") + master_file: PyList[Reference] | None = Field(None, alias="masterFile", serialization_alias="masterFile") + name: PyList[MedicinalProductName] = Field(alias="name", serialization_alias="name") + packaged_medicinal_product: PyList[Reference] | None = Field(None, alias="packagedMedicinalProduct", serialization_alias="packagedMedicinalProduct") + paediatric_use_indicator: CodeableConcept | None = Field(None, alias="paediatricUseIndicator", serialization_alias="paediatricUseIndicator") + pharmaceutical_product: PyList[Reference] | None = Field(None, alias="pharmaceuticalProduct", serialization_alias="pharmaceuticalProduct") + product_classification: PyList[CodeableConcept] | None = Field(None, alias="productClassification", serialization_alias="productClassification") + special_designation: PyList[MedicinalProductSpecialDesignation] | None = Field(None, alias="specialDesignation", serialization_alias="specialDesignation") + special_measures: PyList[str] | None = Field(None, alias="specialMeasures", serialization_alias="specialMeasures") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MedicinalProduct: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/medicinal_product_authorization.py b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_authorization.py new file mode 100644 index 000000000..6c0481f2b --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_authorization.py @@ -0,0 +1,65 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MedicinalProductAuthorizationJurisdictionalAuthorization(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + country: CodeableConcept | None = Field(None, alias="country", serialization_alias="country") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + legal_status_of_supply: CodeableConcept | None = Field(None, alias="legalStatusOfSupply", serialization_alias="legalStatusOfSupply") + validity_period: Period | None = Field(None, alias="validityPeriod", serialization_alias="validityPeriod") + +class MedicinalProductAuthorizationProcedure(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + application: PyList[MedicinalProductAuthorizationProcedure] | None = Field(None, alias="application", serialization_alias="application") + date_date_time: str | None = Field(None, alias="dateDateTime", serialization_alias="dateDateTime") + date_period: Period | None = Field(None, alias="datePeriod", serialization_alias="datePeriod") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + + +class MedicinalProductAuthorization(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MedicinalProductAuthorization', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MedicinalProductAuthorization' + ) + country: PyList[CodeableConcept] | None = Field(None, alias="country", serialization_alias="country") + data_exclusivity_period: Period | None = Field(None, alias="dataExclusivityPeriod", serialization_alias="dataExclusivityPeriod") + date_of_first_authorization: str | None = Field(None, alias="dateOfFirstAuthorization", serialization_alias="dateOfFirstAuthorization") + holder: Reference | None = Field(None, alias="holder", serialization_alias="holder") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + international_birth_date: str | None = Field(None, alias="internationalBirthDate", serialization_alias="internationalBirthDate") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + jurisdictional_authorization: PyList[MedicinalProductAuthorizationJurisdictionalAuthorization] | None = Field(None, alias="jurisdictionalAuthorization", serialization_alias="jurisdictionalAuthorization") + legal_basis: CodeableConcept | None = Field(None, alias="legalBasis", serialization_alias="legalBasis") + procedure: MedicinalProductAuthorizationProcedure | None = Field(None, alias="procedure", serialization_alias="procedure") + regulator: Reference | None = Field(None, alias="regulator", serialization_alias="regulator") + restore_date: str | None = Field(None, alias="restoreDate", serialization_alias="restoreDate") + status: CodeableConcept | None = Field(None, alias="status", serialization_alias="status") + status_date: str | None = Field(None, alias="statusDate", serialization_alias="statusDate") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + validity_period: Period | None = Field(None, alias="validityPeriod", serialization_alias="validityPeriod") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MedicinalProductAuthorization: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/medicinal_product_contraindication.py b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_contraindication.py new file mode 100644 index 000000000..5dc88eab6 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_contraindication.py @@ -0,0 +1,44 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import BackboneElement, CodeableConcept, Population, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MedicinalProductContraindicationOtherTherapy(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + medication_codeable_concept: CodeableConcept | None = Field(None, alias="medicationCodeableConcept", serialization_alias="medicationCodeableConcept") + medication_reference: Reference | None = Field(None, alias="medicationReference", serialization_alias="medicationReference") + therapy_relationship_type: CodeableConcept = Field(alias="therapyRelationshipType", serialization_alias="therapyRelationshipType") + + +class MedicinalProductContraindication(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MedicinalProductContraindication', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MedicinalProductContraindication' + ) + comorbidity: PyList[CodeableConcept] | None = Field(None, alias="comorbidity", serialization_alias="comorbidity") + disease: CodeableConcept | None = Field(None, alias="disease", serialization_alias="disease") + disease_status: CodeableConcept | None = Field(None, alias="diseaseStatus", serialization_alias="diseaseStatus") + other_therapy: PyList[MedicinalProductContraindicationOtherTherapy] | None = Field(None, alias="otherTherapy", serialization_alias="otherTherapy") + population: PyList[Population] | None = Field(None, alias="population", serialization_alias="population") + subject: PyList[Reference] | None = Field(None, alias="subject", serialization_alias="subject") + therapeutic_indication: PyList[Reference] | None = Field(None, alias="therapeuticIndication", serialization_alias="therapeuticIndication") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MedicinalProductContraindication: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/medicinal_product_indication.py b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_indication.py new file mode 100644 index 000000000..87d2389dc --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_indication.py @@ -0,0 +1,48 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Population, Quantity, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MedicinalProductIndicationOtherTherapy(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + medication_codeable_concept: CodeableConcept | None = Field(None, alias="medicationCodeableConcept", serialization_alias="medicationCodeableConcept") + medication_reference: Reference | None = Field(None, alias="medicationReference", serialization_alias="medicationReference") + therapy_relationship_type: CodeableConcept = Field(alias="therapyRelationshipType", serialization_alias="therapyRelationshipType") + + +class MedicinalProductIndication(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MedicinalProductIndication', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MedicinalProductIndication' + ) + comorbidity: PyList[CodeableConcept] | None = Field(None, alias="comorbidity", serialization_alias="comorbidity") + disease_status: CodeableConcept | None = Field(None, alias="diseaseStatus", serialization_alias="diseaseStatus") + disease_symptom_procedure: CodeableConcept | None = Field(None, alias="diseaseSymptomProcedure", serialization_alias="diseaseSymptomProcedure") + duration: Quantity | None = Field(None, alias="duration", serialization_alias="duration") + intended_effect: CodeableConcept | None = Field(None, alias="intendedEffect", serialization_alias="intendedEffect") + other_therapy: PyList[MedicinalProductIndicationOtherTherapy] | None = Field(None, alias="otherTherapy", serialization_alias="otherTherapy") + population: PyList[Population] | None = Field(None, alias="population", serialization_alias="population") + subject: PyList[Reference] | None = Field(None, alias="subject", serialization_alias="subject") + undesirable_effect: PyList[Reference] | None = Field(None, alias="undesirableEffect", serialization_alias="undesirableEffect") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MedicinalProductIndication: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/medicinal_product_ingredient.py b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_ingredient.py new file mode 100644 index 000000000..b041369ef --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_ingredient.py @@ -0,0 +1,69 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Ratio, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MedicinalProductIngredientSpecifiedSubstance(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + confidentiality: CodeableConcept | None = Field(None, alias="confidentiality", serialization_alias="confidentiality") + group: CodeableConcept = Field(alias="group", serialization_alias="group") + strength: PyList[MedicinalProductIngredientSpecifiedSubstanceStrength] | None = Field(None, alias="strength", serialization_alias="strength") + +class MedicinalProductIngredientSpecifiedSubstanceStrength(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + concentration: Ratio | None = Field(None, alias="concentration", serialization_alias="concentration") + concentration_low_limit: Ratio | None = Field(None, alias="concentrationLowLimit", serialization_alias="concentrationLowLimit") + country: PyList[CodeableConcept] | None = Field(None, alias="country", serialization_alias="country") + measurement_point: str | None = Field(None, alias="measurementPoint", serialization_alias="measurementPoint") + presentation: Ratio = Field(alias="presentation", serialization_alias="presentation") + presentation_low_limit: Ratio | None = Field(None, alias="presentationLowLimit", serialization_alias="presentationLowLimit") + reference_strength: PyList[MedicinalProductIngredientSpecifiedSubstanceStrengthReferenceStrength] | None = Field(None, alias="referenceStrength", serialization_alias="referenceStrength") + +class MedicinalProductIngredientSpecifiedSubstanceStrengthReferenceStrength(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + country: PyList[CodeableConcept] | None = Field(None, alias="country", serialization_alias="country") + measurement_point: str | None = Field(None, alias="measurementPoint", serialization_alias="measurementPoint") + strength: Ratio = Field(alias="strength", serialization_alias="strength") + strength_low_limit: Ratio | None = Field(None, alias="strengthLowLimit", serialization_alias="strengthLowLimit") + substance: CodeableConcept | None = Field(None, alias="substance", serialization_alias="substance") + +class MedicinalProductIngredientSubstance(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + strength: PyList[MedicinalProductIngredientSpecifiedSubstanceStrength] | None = Field(None, alias="strength", serialization_alias="strength") + + +class MedicinalProductIngredient(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MedicinalProductIngredient', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MedicinalProductIngredient' + ) + allergenic_indicator: bool | None = Field(None, alias="allergenicIndicator", serialization_alias="allergenicIndicator") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + manufacturer: PyList[Reference] | None = Field(None, alias="manufacturer", serialization_alias="manufacturer") + role: CodeableConcept = Field(alias="role", serialization_alias="role") + specified_substance: PyList[MedicinalProductIngredientSpecifiedSubstance] | None = Field(None, alias="specifiedSubstance", serialization_alias="specifiedSubstance") + substance: MedicinalProductIngredientSubstance | None = Field(None, alias="substance", serialization_alias="substance") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MedicinalProductIngredient: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/medicinal_product_interaction.py b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_interaction.py new file mode 100644 index 000000000..3243e0af3 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_interaction.py @@ -0,0 +1,43 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import BackboneElement, CodeableConcept, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MedicinalProductInteractionInteractant(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + item_codeable_concept: CodeableConcept | None = Field(None, alias="itemCodeableConcept", serialization_alias="itemCodeableConcept") + item_reference: Reference | None = Field(None, alias="itemReference", serialization_alias="itemReference") + + +class MedicinalProductInteraction(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MedicinalProductInteraction', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MedicinalProductInteraction' + ) + description: str | None = Field(None, alias="description", serialization_alias="description") + effect: CodeableConcept | None = Field(None, alias="effect", serialization_alias="effect") + incidence: CodeableConcept | None = Field(None, alias="incidence", serialization_alias="incidence") + interactant: PyList[MedicinalProductInteractionInteractant] | None = Field(None, alias="interactant", serialization_alias="interactant") + management: CodeableConcept | None = Field(None, alias="management", serialization_alias="management") + subject: PyList[Reference] | None = Field(None, alias="subject", serialization_alias="subject") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MedicinalProductInteraction: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/medicinal_product_manufactured.py b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_manufactured.py new file mode 100644 index 000000000..a2fbeaf26 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_manufactured.py @@ -0,0 +1,37 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import CodeableConcept, ProdCharacteristic, Quantity, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MedicinalProductManufactured(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MedicinalProductManufactured', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MedicinalProductManufactured' + ) + ingredient: PyList[Reference] | None = Field(None, alias="ingredient", serialization_alias="ingredient") + manufactured_dose_form: CodeableConcept = Field(alias="manufacturedDoseForm", serialization_alias="manufacturedDoseForm") + manufacturer: PyList[Reference] | None = Field(None, alias="manufacturer", serialization_alias="manufacturer") + other_characteristics: PyList[CodeableConcept] | None = Field(None, alias="otherCharacteristics", serialization_alias="otherCharacteristics") + physical_characteristics: ProdCharacteristic | None = Field(None, alias="physicalCharacteristics", serialization_alias="physicalCharacteristics") + quantity: Quantity = Field(alias="quantity", serialization_alias="quantity") + unit_of_presentation: CodeableConcept | None = Field(None, alias="unitOfPresentation", serialization_alias="unitOfPresentation") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MedicinalProductManufactured: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/medicinal_product_packaged.py b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_packaged.py new file mode 100644 index 000000000..d0b440db2 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_packaged.py @@ -0,0 +1,63 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, MarketingStatus, ProdCharacteristic, ProductShelfLife, Quantity, \ + Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MedicinalProductPackagedBatchIdentifier(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + immediate_packaging: Identifier | None = Field(None, alias="immediatePackaging", serialization_alias="immediatePackaging") + outer_packaging: Identifier = Field(alias="outerPackaging", serialization_alias="outerPackaging") + +class MedicinalProductPackagedPackageItem(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + alternate_material: PyList[CodeableConcept] | None = Field(None, alias="alternateMaterial", serialization_alias="alternateMaterial") + device: PyList[Reference] | None = Field(None, alias="device", serialization_alias="device") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + manufactured_item: PyList[Reference] | None = Field(None, alias="manufacturedItem", serialization_alias="manufacturedItem") + manufacturer: PyList[Reference] | None = Field(None, alias="manufacturer", serialization_alias="manufacturer") + material: PyList[CodeableConcept] | None = Field(None, alias="material", serialization_alias="material") + other_characteristics: PyList[CodeableConcept] | None = Field(None, alias="otherCharacteristics", serialization_alias="otherCharacteristics") + package_item: PyList[MedicinalProductPackagedPackageItem] | None = Field(None, alias="packageItem", serialization_alias="packageItem") + physical_characteristics: ProdCharacteristic | None = Field(None, alias="physicalCharacteristics", serialization_alias="physicalCharacteristics") + quantity: Quantity = Field(alias="quantity", serialization_alias="quantity") + shelf_life_storage: PyList[ProductShelfLife] | None = Field(None, alias="shelfLifeStorage", serialization_alias="shelfLifeStorage") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + + +class MedicinalProductPackaged(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MedicinalProductPackaged', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MedicinalProductPackaged' + ) + batch_identifier: PyList[MedicinalProductPackagedBatchIdentifier] | None = Field(None, alias="batchIdentifier", serialization_alias="batchIdentifier") + description: str | None = Field(None, alias="description", serialization_alias="description") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + legal_status_of_supply: CodeableConcept | None = Field(None, alias="legalStatusOfSupply", serialization_alias="legalStatusOfSupply") + manufacturer: PyList[Reference] | None = Field(None, alias="manufacturer", serialization_alias="manufacturer") + marketing_authorization: Reference | None = Field(None, alias="marketingAuthorization", serialization_alias="marketingAuthorization") + marketing_status: PyList[MarketingStatus] | None = Field(None, alias="marketingStatus", serialization_alias="marketingStatus") + package_item: PyList[MedicinalProductPackagedPackageItem] = Field(alias="packageItem", serialization_alias="packageItem") + subject: PyList[Reference] | None = Field(None, alias="subject", serialization_alias="subject") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MedicinalProductPackaged: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/medicinal_product_pharmaceutical.py b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_pharmaceutical.py new file mode 100644 index 000000000..6b68d51c1 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_pharmaceutical.py @@ -0,0 +1,66 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Duration, Identifier, Quantity, Ratio, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MedicinalProductPharmaceuticalCharacteristics(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + status: CodeableConcept | None = Field(None, alias="status", serialization_alias="status") + +class MedicinalProductPharmaceuticalRouteOfAdministration(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + first_dose: Quantity | None = Field(None, alias="firstDose", serialization_alias="firstDose") + max_dose_per_day: Quantity | None = Field(None, alias="maxDosePerDay", serialization_alias="maxDosePerDay") + max_dose_per_treatment_period: Ratio | None = Field(None, alias="maxDosePerTreatmentPeriod", serialization_alias="maxDosePerTreatmentPeriod") + max_single_dose: Quantity | None = Field(None, alias="maxSingleDose", serialization_alias="maxSingleDose") + max_treatment_period: Duration | None = Field(None, alias="maxTreatmentPeriod", serialization_alias="maxTreatmentPeriod") + target_species: PyList[MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpecies] | None = Field(None, alias="targetSpecies", serialization_alias="targetSpecies") + +class MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpecies(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + withdrawal_period: PyList[MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpeciesWithdrawalPeriod] | None = Field(None, alias="withdrawalPeriod", serialization_alias="withdrawalPeriod") + +class MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpeciesWithdrawalPeriod(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + supporting_information: str | None = Field(None, alias="supportingInformation", serialization_alias="supportingInformation") + tissue: CodeableConcept = Field(alias="tissue", serialization_alias="tissue") + value: Quantity = Field(alias="value", serialization_alias="value") + + +class MedicinalProductPharmaceutical(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MedicinalProductPharmaceutical', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MedicinalProductPharmaceutical' + ) + administrable_dose_form: CodeableConcept = Field(alias="administrableDoseForm", serialization_alias="administrableDoseForm") + characteristics: PyList[MedicinalProductPharmaceuticalCharacteristics] | None = Field(None, alias="characteristics", serialization_alias="characteristics") + device: PyList[Reference] | None = Field(None, alias="device", serialization_alias="device") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + ingredient: PyList[Reference] | None = Field(None, alias="ingredient", serialization_alias="ingredient") + route_of_administration: PyList[MedicinalProductPharmaceuticalRouteOfAdministration] = Field(alias="routeOfAdministration", serialization_alias="routeOfAdministration") + unit_of_presentation: CodeableConcept | None = Field(None, alias="unitOfPresentation", serialization_alias="unitOfPresentation") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MedicinalProductPharmaceutical: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/medicinal_product_undesirable_effect.py b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_undesirable_effect.py new file mode 100644 index 000000000..f805b3b37 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/medicinal_product_undesirable_effect.py @@ -0,0 +1,35 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import CodeableConcept, Population, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MedicinalProductUndesirableEffect(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MedicinalProductUndesirableEffect', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MedicinalProductUndesirableEffect' + ) + classification: CodeableConcept | None = Field(None, alias="classification", serialization_alias="classification") + frequency_of_occurrence: CodeableConcept | None = Field(None, alias="frequencyOfOccurrence", serialization_alias="frequencyOfOccurrence") + population: PyList[Population] | None = Field(None, alias="population", serialization_alias="population") + subject: PyList[Reference] | None = Field(None, alias="subject", serialization_alias="subject") + symptom_condition_effect: CodeableConcept | None = Field(None, alias="symptomConditionEffect", serialization_alias="symptomConditionEffect") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MedicinalProductUndesirableEffect: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/message_definition.py b/examples/python/generated/hl7_fhir_r4_core/message_definition.py new file mode 100644 index 000000000..22b16d0dd --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/message_definition.py @@ -0,0 +1,70 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Coding, ContactDetail, Identifier, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MessageDefinitionAllowedResponse(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + message: str = Field(alias="message", serialization_alias="message") + situation: str | None = Field(None, alias="situation", serialization_alias="situation") + +class MessageDefinitionFocus(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: str = Field(alias="code", serialization_alias="code") + max: str | None = Field(None, alias="max", serialization_alias="max") + min: int = Field(alias="min", serialization_alias="min") + profile: str | None = Field(None, alias="profile", serialization_alias="profile") + + +class MessageDefinition(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MessageDefinition', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MessageDefinition' + ) + allowed_response: PyList[MessageDefinitionAllowedResponse] | None = Field(None, alias="allowedResponse", serialization_alias="allowedResponse") + base: str | None = Field(None, alias="base", serialization_alias="base") + category: Literal["consequence", "currency", "notification"] | None = Field(None, alias="category", serialization_alias="category") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str = Field(alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + event_coding: Coding | None = Field(None, alias="eventCoding", serialization_alias="eventCoding") + event_uri: str | None = Field(None, alias="eventUri", serialization_alias="eventUri") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + focus: PyList[MessageDefinitionFocus] | None = Field(None, alias="focus", serialization_alias="focus") + graph: PyList[str] | None = Field(None, alias="graph", serialization_alias="graph") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + name: str | None = Field(None, alias="name", serialization_alias="name") + parent: PyList[str] | None = Field(None, alias="parent", serialization_alias="parent") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + replaces: PyList[str] | None = Field(None, alias="replaces", serialization_alias="replaces") + response_required: Literal["always", "on-error", "never", "on-success"] | None = Field(None, alias="responseRequired", serialization_alias="responseRequired") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + title: str | None = Field(None, alias="title", serialization_alias="title") + url: str | None = Field(None, alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MessageDefinition: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/message_header.py b/examples/python/generated/hl7_fhir_r4_core/message_header.py new file mode 100644 index 000000000..47db93fa7 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/message_header.py @@ -0,0 +1,66 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Coding, ContactPoint, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MessageHeaderDestination(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + endpoint: str = Field(alias="endpoint", serialization_alias="endpoint") + name: str | None = Field(None, alias="name", serialization_alias="name") + receiver: Reference | None = Field(None, alias="receiver", serialization_alias="receiver") + target: Reference | None = Field(None, alias="target", serialization_alias="target") + +class MessageHeaderResponse(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: Literal["ok", "transient-error", "fatal-error"] = Field(alias="code", serialization_alias="code") + details: Reference | None = Field(None, alias="details", serialization_alias="details") + identifier: str = Field(alias="identifier", serialization_alias="identifier") + +class MessageHeaderSource(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + contact: ContactPoint | None = Field(None, alias="contact", serialization_alias="contact") + endpoint: str = Field(alias="endpoint", serialization_alias="endpoint") + name: str | None = Field(None, alias="name", serialization_alias="name") + software: str | None = Field(None, alias="software", serialization_alias="software") + version: str | None = Field(None, alias="version", serialization_alias="version") + + +class MessageHeader(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MessageHeader', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MessageHeader' + ) + author: Reference | None = Field(None, alias="author", serialization_alias="author") + definition: str | None = Field(None, alias="definition", serialization_alias="definition") + destination: PyList[MessageHeaderDestination] | None = Field(None, alias="destination", serialization_alias="destination") + enterer: Reference | None = Field(None, alias="enterer", serialization_alias="enterer") + event_coding: Coding | None = Field(None, alias="eventCoding", serialization_alias="eventCoding") + event_uri: str | None = Field(None, alias="eventUri", serialization_alias="eventUri") + focus: PyList[Reference] | None = Field(None, alias="focus", serialization_alias="focus") + reason: CodeableConcept | None = Field(None, alias="reason", serialization_alias="reason") + response: MessageHeaderResponse | None = Field(None, alias="response", serialization_alias="response") + responsible: Reference | None = Field(None, alias="responsible", serialization_alias="responsible") + sender: Reference | None = Field(None, alias="sender", serialization_alias="sender") + source: MessageHeaderSource = Field(alias="source", serialization_alias="source") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MessageHeader: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/molecular_sequence.py b/examples/python/generated/hl7_fhir_r4_core/molecular_sequence.py new file mode 100644 index 000000000..1d51d9f94 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/molecular_sequence.py @@ -0,0 +1,125 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Quantity, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class MolecularSequenceQuality(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + end: int | None = Field(None, alias="end", serialization_alias="end") + f_score: float | None = Field(None, alias="fScore", serialization_alias="fScore") + gt_fp: float | None = Field(None, alias="gtFP", serialization_alias="gtFP") + method: CodeableConcept | None = Field(None, alias="method", serialization_alias="method") + precision: float | None = Field(None, alias="precision", serialization_alias="precision") + query_fp: float | None = Field(None, alias="queryFP", serialization_alias="queryFP") + query_tp: float | None = Field(None, alias="queryTP", serialization_alias="queryTP") + recall: float | None = Field(None, alias="recall", serialization_alias="recall") + roc: MolecularSequenceQualityRoc | None = Field(None, alias="roc", serialization_alias="roc") + score: Quantity | None = Field(None, alias="score", serialization_alias="score") + standard_sequence: CodeableConcept | None = Field(None, alias="standardSequence", serialization_alias="standardSequence") + start: int | None = Field(None, alias="start", serialization_alias="start") + truth_fn: float | None = Field(None, alias="truthFN", serialization_alias="truthFN") + truth_tp: float | None = Field(None, alias="truthTP", serialization_alias="truthTP") + type: Literal["indel", "snp", "unknown"] = Field(alias="type", serialization_alias="type") + +class MolecularSequenceQualityRoc(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + f_measure: PyList[float] | None = Field(None, alias="fMeasure", serialization_alias="fMeasure") + num_fn: PyList[int] | None = Field(None, alias="numFN", serialization_alias="numFN") + num_fp: PyList[int] | None = Field(None, alias="numFP", serialization_alias="numFP") + num_tp: PyList[int] | None = Field(None, alias="numTP", serialization_alias="numTP") + precision: PyList[float] | None = Field(None, alias="precision", serialization_alias="precision") + score: PyList[int] | None = Field(None, alias="score", serialization_alias="score") + sensitivity: PyList[float] | None = Field(None, alias="sensitivity", serialization_alias="sensitivity") + +class MolecularSequenceReferenceSeq(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + chromosome: CodeableConcept | None = Field(None, alias="chromosome", serialization_alias="chromosome") + genome_build: str | None = Field(None, alias="genomeBuild", serialization_alias="genomeBuild") + orientation: Literal["sense", "antisense"] | None = Field(None, alias="orientation", serialization_alias="orientation") + reference_seq_id: CodeableConcept | None = Field(None, alias="referenceSeqId", serialization_alias="referenceSeqId") + reference_seq_pointer: Reference | None = Field(None, alias="referenceSeqPointer", serialization_alias="referenceSeqPointer") + reference_seq_string: str | None = Field(None, alias="referenceSeqString", serialization_alias="referenceSeqString") + strand: Literal["watson", "crick"] | None = Field(None, alias="strand", serialization_alias="strand") + window_end: int | None = Field(None, alias="windowEnd", serialization_alias="windowEnd") + window_start: int | None = Field(None, alias="windowStart", serialization_alias="windowStart") + +class MolecularSequenceRepository(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + dataset_id: str | None = Field(None, alias="datasetId", serialization_alias="datasetId") + name: str | None = Field(None, alias="name", serialization_alias="name") + readset_id: str | None = Field(None, alias="readsetId", serialization_alias="readsetId") + type: Literal["directlink", "openapi", "login", "oauth", "other"] = Field(alias="type", serialization_alias="type") + url: str | None = Field(None, alias="url", serialization_alias="url") + variantset_id: str | None = Field(None, alias="variantsetId", serialization_alias="variantsetId") + +class MolecularSequenceStructureVariant(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + exact: bool | None = Field(None, alias="exact", serialization_alias="exact") + inner: MolecularSequenceStructureVariantInner | None = Field(None, alias="inner", serialization_alias="inner") + length: int | None = Field(None, alias="length", serialization_alias="length") + outer: MolecularSequenceStructureVariantOuter | None = Field(None, alias="outer", serialization_alias="outer") + variant_type: CodeableConcept | None = Field(None, alias="variantType", serialization_alias="variantType") + +class MolecularSequenceStructureVariantInner(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + end: int | None = Field(None, alias="end", serialization_alias="end") + start: int | None = Field(None, alias="start", serialization_alias="start") + +class MolecularSequenceStructureVariantOuter(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + end: int | None = Field(None, alias="end", serialization_alias="end") + start: int | None = Field(None, alias="start", serialization_alias="start") + +class MolecularSequenceVariant(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + cigar: str | None = Field(None, alias="cigar", serialization_alias="cigar") + end: int | None = Field(None, alias="end", serialization_alias="end") + observed_allele: str | None = Field(None, alias="observedAllele", serialization_alias="observedAllele") + reference_allele: str | None = Field(None, alias="referenceAllele", serialization_alias="referenceAllele") + start: int | None = Field(None, alias="start", serialization_alias="start") + variant_pointer: Reference | None = Field(None, alias="variantPointer", serialization_alias="variantPointer") + + +class MolecularSequence(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='MolecularSequence', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='MolecularSequence' + ) + coordinate_system: int = Field(alias="coordinateSystem", serialization_alias="coordinateSystem") + device: Reference | None = Field(None, alias="device", serialization_alias="device") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + observed_seq: str | None = Field(None, alias="observedSeq", serialization_alias="observedSeq") + patient: Reference | None = Field(None, alias="patient", serialization_alias="patient") + performer: Reference | None = Field(None, alias="performer", serialization_alias="performer") + pointer: PyList[Reference] | None = Field(None, alias="pointer", serialization_alias="pointer") + quality: PyList[MolecularSequenceQuality] | None = Field(None, alias="quality", serialization_alias="quality") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + read_coverage: int | None = Field(None, alias="readCoverage", serialization_alias="readCoverage") + reference_seq: MolecularSequenceReferenceSeq | None = Field(None, alias="referenceSeq", serialization_alias="referenceSeq") + repository: PyList[MolecularSequenceRepository] | None = Field(None, alias="repository", serialization_alias="repository") + specimen: Reference | None = Field(None, alias="specimen", serialization_alias="specimen") + structure_variant: PyList[MolecularSequenceStructureVariant] | None = Field(None, alias="structureVariant", serialization_alias="structureVariant") + type: Literal["aa", "dna", "rna"] | None = Field(None, alias="type", serialization_alias="type") + variant: PyList[MolecularSequenceVariant] | None = Field(None, alias="variant", serialization_alias="variant") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> MolecularSequence: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/naming_system.py b/examples/python/generated/hl7_fhir_r4_core/naming_system.py new file mode 100644 index 000000000..46bd3a5df --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/naming_system.py @@ -0,0 +1,54 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, ContactDetail, Period, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class NamingSystemUniqueId(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + period: Period | None = Field(None, alias="period", serialization_alias="period") + preferred: bool | None = Field(None, alias="preferred", serialization_alias="preferred") + type: Literal["oid", "uuid", "uri", "other"] = Field(alias="type", serialization_alias="type") + value: str = Field(alias="value", serialization_alias="value") + + +class NamingSystem(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='NamingSystem', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='NamingSystem' + ) + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + date: str = Field(alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + kind: Literal["codesystem", "identifier", "root"] = Field(alias="kind", serialization_alias="kind") + name: str = Field(alias="name", serialization_alias="name") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + responsible: str | None = Field(None, alias="responsible", serialization_alias="responsible") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + unique_id: PyList[NamingSystemUniqueId] = Field(alias="uniqueId", serialization_alias="uniqueId") + usage: str | None = Field(None, alias="usage", serialization_alias="usage") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> NamingSystem: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/nutrition_order.py b/examples/python/generated/hl7_fhir_r4_core/nutrition_order.py new file mode 100644 index 000000000..20d18fbb5 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/nutrition_order.py @@ -0,0 +1,96 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Identifier, Quantity, Ratio, Reference, Timing +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class NutritionOrderEnteralFormula(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + additive_product_name: str | None = Field(None, alias="additiveProductName", serialization_alias="additiveProductName") + additive_type: CodeableConcept | None = Field(None, alias="additiveType", serialization_alias="additiveType") + administration: PyList[NutritionOrderEnteralFormulaAdministration] | None = Field(None, alias="administration", serialization_alias="administration") + administration_instruction: str | None = Field(None, alias="administrationInstruction", serialization_alias="administrationInstruction") + base_formula_product_name: str | None = Field(None, alias="baseFormulaProductName", serialization_alias="baseFormulaProductName") + base_formula_type: CodeableConcept | None = Field(None, alias="baseFormulaType", serialization_alias="baseFormulaType") + caloric_density: Quantity | None = Field(None, alias="caloricDensity", serialization_alias="caloricDensity") + max_volume_to_deliver: Quantity | None = Field(None, alias="maxVolumeToDeliver", serialization_alias="maxVolumeToDeliver") + routeof_administration: CodeableConcept | None = Field(None, alias="routeofAdministration", serialization_alias="routeofAdministration") + +class NutritionOrderEnteralFormulaAdministration(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + rate_quantity: Quantity | None = Field(None, alias="rateQuantity", serialization_alias="rateQuantity") + rate_ratio: Ratio | None = Field(None, alias="rateRatio", serialization_alias="rateRatio") + schedule: Timing | None = Field(None, alias="schedule", serialization_alias="schedule") + +class NutritionOrderOralDiet(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + fluid_consistency_type: PyList[CodeableConcept] | None = Field(None, alias="fluidConsistencyType", serialization_alias="fluidConsistencyType") + instruction: str | None = Field(None, alias="instruction", serialization_alias="instruction") + nutrient: PyList[NutritionOrderOralDietNutrient] | None = Field(None, alias="nutrient", serialization_alias="nutrient") + schedule: PyList[Timing] | None = Field(None, alias="schedule", serialization_alias="schedule") + texture: PyList[NutritionOrderOralDietTexture] | None = Field(None, alias="texture", serialization_alias="texture") + type: PyList[CodeableConcept] | None = Field(None, alias="type", serialization_alias="type") + +class NutritionOrderOralDietNutrient(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount: Quantity | None = Field(None, alias="amount", serialization_alias="amount") + modifier: CodeableConcept | None = Field(None, alias="modifier", serialization_alias="modifier") + +class NutritionOrderOralDietTexture(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + food_type: CodeableConcept | None = Field(None, alias="foodType", serialization_alias="foodType") + modifier: CodeableConcept | None = Field(None, alias="modifier", serialization_alias="modifier") + +class NutritionOrderSupplement(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + instruction: str | None = Field(None, alias="instruction", serialization_alias="instruction") + product_name: str | None = Field(None, alias="productName", serialization_alias="productName") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + schedule: PyList[Timing] | None = Field(None, alias="schedule", serialization_alias="schedule") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + +class NutritionOrder(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='NutritionOrder', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='NutritionOrder' + ) + allergy_intolerance: PyList[Reference] | None = Field(None, alias="allergyIntolerance", serialization_alias="allergyIntolerance") + date_time: str = Field(alias="dateTime", serialization_alias="dateTime") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + enteral_formula: NutritionOrderEnteralFormula | None = Field(None, alias="enteralFormula", serialization_alias="enteralFormula") + exclude_food_modifier: PyList[CodeableConcept] | None = Field(None, alias="excludeFoodModifier", serialization_alias="excludeFoodModifier") + food_preference_modifier: PyList[CodeableConcept] | None = Field(None, alias="foodPreferenceModifier", serialization_alias="foodPreferenceModifier") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + instantiates: PyList[str] | None = Field(None, alias="instantiates", serialization_alias="instantiates") + instantiates_canonical: PyList[str] | None = Field(None, alias="instantiatesCanonical", serialization_alias="instantiatesCanonical") + instantiates_uri: PyList[str] | None = Field(None, alias="instantiatesUri", serialization_alias="instantiatesUri") + intent: Literal["proposal", "plan", "directive", "order", "original-order", "reflex-order", "filler-order", "instance-order", "option"] = Field(alias="intent", serialization_alias="intent") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + oral_diet: NutritionOrderOralDiet | None = Field(None, alias="oralDiet", serialization_alias="oralDiet") + orderer: Reference | None = Field(None, alias="orderer", serialization_alias="orderer") + patient: Reference = Field(alias="patient", serialization_alias="patient") + status: Literal["draft", "active", "on-hold", "revoked", "completed", "entered-in-error", "unknown"] = Field(alias="status", serialization_alias="status") + supplement: PyList[NutritionOrderSupplement] | None = Field(None, alias="supplement", serialization_alias="supplement") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> NutritionOrder: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/observation.py b/examples/python/generated/hl7_fhir_r4_core/observation.py new file mode 100644 index 000000000..68a2d664a --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/observation.py @@ -0,0 +1,98 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Identifier, Period, Quantity, Range, Ratio, Reference, SampledData, \ + Timing +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ObservationComponent(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + data_absent_reason: CodeableConcept | None = Field(None, alias="dataAbsentReason", serialization_alias="dataAbsentReason") + interpretation: PyList[CodeableConcept] | None = Field(None, alias="interpretation", serialization_alias="interpretation") + reference_range: PyList[ObservationReferenceRange] | None = Field(None, alias="referenceRange", serialization_alias="referenceRange") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_codeable_concept: CodeableConcept | None = Field(None, alias="valueCodeableConcept", serialization_alias="valueCodeableConcept") + value_date_time: str | None = Field(None, alias="valueDateTime", serialization_alias="valueDateTime") + value_integer: int | None = Field(None, alias="valueInteger", serialization_alias="valueInteger") + value_period: Period | None = Field(None, alias="valuePeriod", serialization_alias="valuePeriod") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_range: Range | None = Field(None, alias="valueRange", serialization_alias="valueRange") + value_ratio: Ratio | None = Field(None, alias="valueRatio", serialization_alias="valueRatio") + value_sampled_data: SampledData | None = Field(None, alias="valueSampledData", serialization_alias="valueSampledData") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + value_time: str | None = Field(None, alias="valueTime", serialization_alias="valueTime") + +class ObservationReferenceRange(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + age: Range | None = Field(None, alias="age", serialization_alias="age") + applies_to: PyList[CodeableConcept] | None = Field(None, alias="appliesTo", serialization_alias="appliesTo") + high: Quantity | None = Field(None, alias="high", serialization_alias="high") + low: Quantity | None = Field(None, alias="low", serialization_alias="low") + text: str | None = Field(None, alias="text", serialization_alias="text") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + +class Observation(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Observation', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Observation' + ) + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + body_site: CodeableConcept | None = Field(None, alias="bodySite", serialization_alias="bodySite") + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + component: PyList[ObservationComponent] | None = Field(None, alias="component", serialization_alias="component") + data_absent_reason: CodeableConcept | None = Field(None, alias="dataAbsentReason", serialization_alias="dataAbsentReason") + derived_from: PyList[Reference] | None = Field(None, alias="derivedFrom", serialization_alias="derivedFrom") + device: Reference | None = Field(None, alias="device", serialization_alias="device") + effective_date_time: str | None = Field(None, alias="effectiveDateTime", serialization_alias="effectiveDateTime") + effective_instant: str | None = Field(None, alias="effectiveInstant", serialization_alias="effectiveInstant") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + effective_timing: Timing | None = Field(None, alias="effectiveTiming", serialization_alias="effectiveTiming") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + focus: PyList[Reference] | None = Field(None, alias="focus", serialization_alias="focus") + has_member: PyList[Reference] | None = Field(None, alias="hasMember", serialization_alias="hasMember") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + interpretation: PyList[CodeableConcept] | None = Field(None, alias="interpretation", serialization_alias="interpretation") + issued: str | None = Field(None, alias="issued", serialization_alias="issued") + method: CodeableConcept | None = Field(None, alias="method", serialization_alias="method") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + part_of: PyList[Reference] | None = Field(None, alias="partOf", serialization_alias="partOf") + performer: PyList[Reference] | None = Field(None, alias="performer", serialization_alias="performer") + reference_range: PyList[ObservationReferenceRange] | None = Field(None, alias="referenceRange", serialization_alias="referenceRange") + specimen: Reference | None = Field(None, alias="specimen", serialization_alias="specimen") + status: Literal["registered", "preliminary", "final", "amended", "corrected", "cancelled", "entered-in-error", "unknown"] = Field(alias="status", serialization_alias="status") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_codeable_concept: CodeableConcept | None = Field(None, alias="valueCodeableConcept", serialization_alias="valueCodeableConcept") + value_date_time: str | None = Field(None, alias="valueDateTime", serialization_alias="valueDateTime") + value_integer: int | None = Field(None, alias="valueInteger", serialization_alias="valueInteger") + value_period: Period | None = Field(None, alias="valuePeriod", serialization_alias="valuePeriod") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_range: Range | None = Field(None, alias="valueRange", serialization_alias="valueRange") + value_ratio: Ratio | None = Field(None, alias="valueRatio", serialization_alias="valueRatio") + value_sampled_data: SampledData | None = Field(None, alias="valueSampledData", serialization_alias="valueSampledData") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + value_time: str | None = Field(None, alias="valueTime", serialization_alias="valueTime") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Observation: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/observation_definition.py b/examples/python/generated/hl7_fhir_r4_core/observation_definition.py new file mode 100644 index 000000000..d0e77a801 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/observation_definition.py @@ -0,0 +1,64 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Range, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ObservationDefinitionQualifiedInterval(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + age: Range | None = Field(None, alias="age", serialization_alias="age") + applies_to: PyList[CodeableConcept] | None = Field(None, alias="appliesTo", serialization_alias="appliesTo") + category: Literal["reference", "critical", "absolute"] | None = Field(None, alias="category", serialization_alias="category") + condition: str | None = Field(None, alias="condition", serialization_alias="condition") + context: CodeableConcept | None = Field(None, alias="context", serialization_alias="context") + gender: Literal["male", "female", "other", "unknown"] | None = Field(None, alias="gender", serialization_alias="gender") + gestational_age: Range | None = Field(None, alias="gestationalAge", serialization_alias="gestationalAge") + range: Range | None = Field(None, alias="range", serialization_alias="range") + +class ObservationDefinitionQuantitativeDetails(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + conversion_factor: float | None = Field(None, alias="conversionFactor", serialization_alias="conversionFactor") + customary_unit: CodeableConcept | None = Field(None, alias="customaryUnit", serialization_alias="customaryUnit") + decimal_precision: int | None = Field(None, alias="decimalPrecision", serialization_alias="decimalPrecision") + unit: CodeableConcept | None = Field(None, alias="unit", serialization_alias="unit") + + +class ObservationDefinition(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ObservationDefinition', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ObservationDefinition' + ) + abnormal_coded_value_set: Reference | None = Field(None, alias="abnormalCodedValueSet", serialization_alias="abnormalCodedValueSet") + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + critical_coded_value_set: Reference | None = Field(None, alias="criticalCodedValueSet", serialization_alias="criticalCodedValueSet") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + method: CodeableConcept | None = Field(None, alias="method", serialization_alias="method") + multiple_results_allowed: bool | None = Field(None, alias="multipleResultsAllowed", serialization_alias="multipleResultsAllowed") + normal_coded_value_set: Reference | None = Field(None, alias="normalCodedValueSet", serialization_alias="normalCodedValueSet") + permitted_data_type: PyList[Literal["Quantity", "CodeableConcept", "string", "boolean", "integer", "Range", "Ratio", "SampledData", "time", "dateTime", "Period"]] | None = Field(None, alias="permittedDataType", serialization_alias="permittedDataType") + preferred_report_name: str | None = Field(None, alias="preferredReportName", serialization_alias="preferredReportName") + qualified_interval: PyList[ObservationDefinitionQualifiedInterval] | None = Field(None, alias="qualifiedInterval", serialization_alias="qualifiedInterval") + quantitative_details: ObservationDefinitionQuantitativeDetails | None = Field(None, alias="quantitativeDetails", serialization_alias="quantitativeDetails") + valid_coded_value_set: Reference | None = Field(None, alias="validCodedValueSet", serialization_alias="validCodedValueSet") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ObservationDefinition: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/operation_definition.py b/examples/python/generated/hl7_fhir_r4_core/operation_definition.py new file mode 100644 index 000000000..f6b30c127 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/operation_definition.py @@ -0,0 +1,88 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, ContactDetail, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class OperationDefinitionOverload(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + parameter_name: PyList[str] | None = Field(None, alias="parameterName", serialization_alias="parameterName") + +class OperationDefinitionParameter(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + binding: OperationDefinitionParameterBinding | None = Field(None, alias="binding", serialization_alias="binding") + documentation: str | None = Field(None, alias="documentation", serialization_alias="documentation") + max: str = Field(alias="max", serialization_alias="max") + min: int = Field(alias="min", serialization_alias="min") + name: str = Field(alias="name", serialization_alias="name") + part: PyList[OperationDefinitionParameter] | None = Field(None, alias="part", serialization_alias="part") + referenced_from: PyList[OperationDefinitionParameterReferencedFrom] | None = Field(None, alias="referencedFrom", serialization_alias="referencedFrom") + search_type: Literal["number", "date", "string", "token", "reference", "composite", "quantity", "uri", "special"] | None = Field(None, alias="searchType", serialization_alias="searchType") + target_profile: PyList[str] | None = Field(None, alias="targetProfile", serialization_alias="targetProfile") + type: str | None = Field(None, alias="type", serialization_alias="type") + use: Literal["in", "out"] = Field(alias="use", serialization_alias="use") + +class OperationDefinitionParameterBinding(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + strength: Literal["required", "extensible", "preferred", "example"] = Field(alias="strength", serialization_alias="strength") + value_set: str = Field(alias="valueSet", serialization_alias="valueSet") + +class OperationDefinitionParameterReferencedFrom(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + source: str = Field(alias="source", serialization_alias="source") + source_id: str | None = Field(None, alias="sourceId", serialization_alias="sourceId") + + +class OperationDefinition(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='OperationDefinition', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='OperationDefinition' + ) + affects_state: bool | None = Field(None, alias="affectsState", serialization_alias="affectsState") + base: str | None = Field(None, alias="base", serialization_alias="base") + code: str = Field(alias="code", serialization_alias="code") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + input_profile: str | None = Field(None, alias="inputProfile", serialization_alias="inputProfile") + instance: bool = Field(alias="instance", serialization_alias="instance") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + kind: Literal["operation", "query"] = Field(alias="kind", serialization_alias="kind") + name: str = Field(alias="name", serialization_alias="name") + output_profile: str | None = Field(None, alias="outputProfile", serialization_alias="outputProfile") + overload: PyList[OperationDefinitionOverload] | None = Field(None, alias="overload", serialization_alias="overload") + parameter: PyList[OperationDefinitionParameter] | None = Field(None, alias="parameter", serialization_alias="parameter") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + resource: PyList[str] | None = Field(None, alias="resource", serialization_alias="resource") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + system: bool = Field(alias="system", serialization_alias="system") + title: str | None = Field(None, alias="title", serialization_alias="title") + type: bool = Field(alias="type", serialization_alias="type") + url: str | None = Field(None, alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> OperationDefinition: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/operation_outcome.py b/examples/python/generated/hl7_fhir_r4_core/operation_outcome.py new file mode 100644 index 000000000..8f532e979 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/operation_outcome.py @@ -0,0 +1,41 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import BackboneElement, CodeableConcept +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class OperationOutcomeIssue(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: Literal["invalid", "structure", "required", "value", "invariant", "security", "login", "unknown", "expired", "forbidden", "suppressed", "processing", "not-supported", "duplicate", "multiple-matches", "not-found", "deleted", "too-long", "code-invalid", "extension", "too-costly", "business-rule", "conflict", "transient", "lock-error", "no-store", "exception", "timeout", "incomplete", "throttled", "informational"] = Field(alias="code", serialization_alias="code") + details: CodeableConcept | None = Field(None, alias="details", serialization_alias="details") + diagnostics: str | None = Field(None, alias="diagnostics", serialization_alias="diagnostics") + expression: PyList[str] | None = Field(None, alias="expression", serialization_alias="expression") + location: PyList[str] | None = Field(None, alias="location", serialization_alias="location") + severity: Literal["fatal", "error", "warning", "information"] = Field(alias="severity", serialization_alias="severity") + + +class OperationOutcome(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='OperationOutcome', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='OperationOutcome' + ) + issue: PyList[OperationOutcomeIssue] = Field(alias="issue", serialization_alias="issue") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> OperationOutcome: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/organization.py b/examples/python/generated/hl7_fhir_r4_core/organization.py new file mode 100644 index 000000000..10c931464 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/organization.py @@ -0,0 +1,50 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Address, BackboneElement, CodeableConcept, ContactPoint, HumanName, Identifier, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class OrganizationContact(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + address: Address | None = Field(None, alias="address", serialization_alias="address") + name: HumanName | None = Field(None, alias="name", serialization_alias="name") + purpose: CodeableConcept | None = Field(None, alias="purpose", serialization_alias="purpose") + telecom: PyList[ContactPoint] | None = Field(None, alias="telecom", serialization_alias="telecom") + + +class Organization(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Organization', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Organization' + ) + active: bool | None = Field(None, alias="active", serialization_alias="active") + address: PyList[Address] | None = Field(None, alias="address", serialization_alias="address") + alias: PyList[str] | None = Field(None, alias="alias", serialization_alias="alias") + contact: PyList[OrganizationContact] | None = Field(None, alias="contact", serialization_alias="contact") + endpoint: PyList[Reference] | None = Field(None, alias="endpoint", serialization_alias="endpoint") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + name: str | None = Field(None, alias="name", serialization_alias="name") + part_of: Reference | None = Field(None, alias="partOf", serialization_alias="partOf") + telecom: PyList[ContactPoint] | None = Field(None, alias="telecom", serialization_alias="telecom") + type: PyList[CodeableConcept] | None = Field(None, alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Organization: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/organization_affiliation.py b/examples/python/generated/hl7_fhir_r4_core/organization_affiliation.py new file mode 100644 index 000000000..97c609316 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/organization_affiliation.py @@ -0,0 +1,44 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + CodeableConcept, ContactPoint, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class OrganizationAffiliation(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='OrganizationAffiliation', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='OrganizationAffiliation' + ) + active: bool | None = Field(None, alias="active", serialization_alias="active") + code: PyList[CodeableConcept] | None = Field(None, alias="code", serialization_alias="code") + endpoint: PyList[Reference] | None = Field(None, alias="endpoint", serialization_alias="endpoint") + healthcare_service: PyList[Reference] | None = Field(None, alias="healthcareService", serialization_alias="healthcareService") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + location: PyList[Reference] | None = Field(None, alias="location", serialization_alias="location") + network: PyList[Reference] | None = Field(None, alias="network", serialization_alias="network") + organization: Reference | None = Field(None, alias="organization", serialization_alias="organization") + participating_organization: Reference | None = Field(None, alias="participatingOrganization", serialization_alias="participatingOrganization") + period: Period | None = Field(None, alias="period", serialization_alias="period") + specialty: PyList[CodeableConcept] | None = Field(None, alias="specialty", serialization_alias="specialty") + telecom: PyList[ContactPoint] | None = Field(None, alias="telecom", serialization_alias="telecom") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> OrganizationAffiliation: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/parameters.py b/examples/python/generated/hl7_fhir_r4_core/parameters.py new file mode 100644 index 000000000..81da21890 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/parameters.py @@ -0,0 +1,93 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Address, Age, Annotation, Attachment, BackboneElement, CodeableConcept, Coding, ContactDetail, ContactPoint, \ + Contributor, Count, DataRequirement, Distance, Dosage, Duration, Expression, HumanName, Identifier, Meta, \ + Money, ParameterDefinition, Period, Quantity, Range, Ratio, Reference, RelatedArtifact, SampledData, Signature, \ + Timing, TriggerDefinition, UsageContext +) +from generated.hl7_fhir_r4_core.resource import Resource +from generated.hl7_fhir_r4_core.resource_families import ResourceFamily + + +class ParametersParameter(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + name: str = Field(alias="name", serialization_alias="name") + part: PyList[ParametersParameter] | None = Field(None, alias="part", serialization_alias="part") + resource: ResourceFamily | None = Field(None, alias="resource", serialization_alias="resource") + value_address: Address | None = Field(None, alias="valueAddress", serialization_alias="valueAddress") + value_age: Age | None = Field(None, alias="valueAge", serialization_alias="valueAge") + value_annotation: Annotation | None = Field(None, alias="valueAnnotation", serialization_alias="valueAnnotation") + value_attachment: Attachment | None = Field(None, alias="valueAttachment", serialization_alias="valueAttachment") + value_base64binary: str | None = Field(None, alias="valueBase64Binary", serialization_alias="valueBase64Binary") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_canonical: str | None = Field(None, alias="valueCanonical", serialization_alias="valueCanonical") + value_code: str | None = Field(None, alias="valueCode", serialization_alias="valueCode") + value_codeable_concept: CodeableConcept | None = Field(None, alias="valueCodeableConcept", serialization_alias="valueCodeableConcept") + value_coding: Coding | None = Field(None, alias="valueCoding", serialization_alias="valueCoding") + value_contact_detail: ContactDetail | None = Field(None, alias="valueContactDetail", serialization_alias="valueContactDetail") + value_contact_point: ContactPoint | None = Field(None, alias="valueContactPoint", serialization_alias="valueContactPoint") + value_contributor: Contributor | None = Field(None, alias="valueContributor", serialization_alias="valueContributor") + value_count: Count | None = Field(None, alias="valueCount", serialization_alias="valueCount") + value_data_requirement: DataRequirement | None = Field(None, alias="valueDataRequirement", serialization_alias="valueDataRequirement") + value_date: str | None = Field(None, alias="valueDate", serialization_alias="valueDate") + value_date_time: str | None = Field(None, alias="valueDateTime", serialization_alias="valueDateTime") + value_decimal: float | None = Field(None, alias="valueDecimal", serialization_alias="valueDecimal") + value_distance: Distance | None = Field(None, alias="valueDistance", serialization_alias="valueDistance") + value_dosage: Dosage | None = Field(None, alias="valueDosage", serialization_alias="valueDosage") + value_duration: Duration | None = Field(None, alias="valueDuration", serialization_alias="valueDuration") + value_expression: Expression | None = Field(None, alias="valueExpression", serialization_alias="valueExpression") + value_human_name: HumanName | None = Field(None, alias="valueHumanName", serialization_alias="valueHumanName") + value_id: str | None = Field(None, alias="valueId", serialization_alias="valueId") + value_identifier: Identifier | None = Field(None, alias="valueIdentifier", serialization_alias="valueIdentifier") + value_instant: str | None = Field(None, alias="valueInstant", serialization_alias="valueInstant") + value_integer: int | None = Field(None, alias="valueInteger", serialization_alias="valueInteger") + value_markdown: str | None = Field(None, alias="valueMarkdown", serialization_alias="valueMarkdown") + value_meta: Meta | None = Field(None, alias="valueMeta", serialization_alias="valueMeta") + value_money: Money | None = Field(None, alias="valueMoney", serialization_alias="valueMoney") + value_oid: str | None = Field(None, alias="valueOid", serialization_alias="valueOid") + value_parameter_definition: ParameterDefinition | None = Field(None, alias="valueParameterDefinition", serialization_alias="valueParameterDefinition") + value_period: Period | None = Field(None, alias="valuePeriod", serialization_alias="valuePeriod") + value_positive_int: PositiveInt | None = Field(None, alias="valuePositiveInt", serialization_alias="valuePositiveInt") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_range: Range | None = Field(None, alias="valueRange", serialization_alias="valueRange") + value_ratio: Ratio | None = Field(None, alias="valueRatio", serialization_alias="valueRatio") + value_reference: Reference | None = Field(None, alias="valueReference", serialization_alias="valueReference") + value_related_artifact: RelatedArtifact | None = Field(None, alias="valueRelatedArtifact", serialization_alias="valueRelatedArtifact") + value_sampled_data: SampledData | None = Field(None, alias="valueSampledData", serialization_alias="valueSampledData") + value_signature: Signature | None = Field(None, alias="valueSignature", serialization_alias="valueSignature") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + value_time: str | None = Field(None, alias="valueTime", serialization_alias="valueTime") + value_timing: Timing | None = Field(None, alias="valueTiming", serialization_alias="valueTiming") + value_trigger_definition: TriggerDefinition | None = Field(None, alias="valueTriggerDefinition", serialization_alias="valueTriggerDefinition") + value_unsigned_int: int | None = Field(None, alias="valueUnsignedInt", serialization_alias="valueUnsignedInt") + value_uri: str | None = Field(None, alias="valueUri", serialization_alias="valueUri") + value_url: str | None = Field(None, alias="valueUrl", serialization_alias="valueUrl") + value_usage_context: UsageContext | None = Field(None, alias="valueUsageContext", serialization_alias="valueUsageContext") + value_uuid: str | None = Field(None, alias="valueUuid", serialization_alias="valueUuid") + + +class Parameters(Resource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Parameters', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Parameters' + ) + parameter: PyList[ParametersParameter] | None = Field(None, alias="parameter", serialization_alias="parameter") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Parameters: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/patient.py b/examples/python/generated/hl7_fhir_r4_core/patient.py new file mode 100644 index 000000000..04670abc4 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/patient.py @@ -0,0 +1,71 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Address, Attachment, BackboneElement, CodeableConcept, ContactPoint, HumanName, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class PatientCommunication(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + language: CodeableConcept = Field(alias="language", serialization_alias="language") + preferred: bool | None = Field(None, alias="preferred", serialization_alias="preferred") + +class PatientContact(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + address: Address | None = Field(None, alias="address", serialization_alias="address") + gender: Literal["male", "female", "other", "unknown"] | None = Field(None, alias="gender", serialization_alias="gender") + name: HumanName | None = Field(None, alias="name", serialization_alias="name") + organization: Reference | None = Field(None, alias="organization", serialization_alias="organization") + period: Period | None = Field(None, alias="period", serialization_alias="period") + relationship: PyList[CodeableConcept] | None = Field(None, alias="relationship", serialization_alias="relationship") + telecom: PyList[ContactPoint] | None = Field(None, alias="telecom", serialization_alias="telecom") + +class PatientLink(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + other: Reference = Field(alias="other", serialization_alias="other") + type: Literal["replaced-by", "replaces", "refer", "seealso"] = Field(alias="type", serialization_alias="type") + + +class Patient(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Patient', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Patient' + ) + active: bool | None = Field(None, alias="active", serialization_alias="active") + address: PyList[Address] | None = Field(None, alias="address", serialization_alias="address") + birth_date: str | None = Field(None, alias="birthDate", serialization_alias="birthDate") + communication: PyList[PatientCommunication] | None = Field(None, alias="communication", serialization_alias="communication") + contact: PyList[PatientContact] | None = Field(None, alias="contact", serialization_alias="contact") + deceased_boolean: bool | None = Field(None, alias="deceasedBoolean", serialization_alias="deceasedBoolean") + deceased_date_time: str | None = Field(None, alias="deceasedDateTime", serialization_alias="deceasedDateTime") + gender: Literal["male", "female", "other", "unknown"] | None = Field(None, alias="gender", serialization_alias="gender") + general_practitioner: PyList[Reference] | None = Field(None, alias="generalPractitioner", serialization_alias="generalPractitioner") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + link: PyList[PatientLink] | None = Field(None, alias="link", serialization_alias="link") + managing_organization: Reference | None = Field(None, alias="managingOrganization", serialization_alias="managingOrganization") + marital_status: CodeableConcept | None = Field(None, alias="maritalStatus", serialization_alias="maritalStatus") + multiple_birth_boolean: bool | None = Field(None, alias="multipleBirthBoolean", serialization_alias="multipleBirthBoolean") + multiple_birth_integer: int | None = Field(None, alias="multipleBirthInteger", serialization_alias="multipleBirthInteger") + name: PyList[HumanName] | None = Field(None, alias="name", serialization_alias="name") + photo: PyList[Attachment] | None = Field(None, alias="photo", serialization_alias="photo") + telecom: PyList[ContactPoint] | None = Field(None, alias="telecom", serialization_alias="telecom") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Patient: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/payment_notice.py b/examples/python/generated/hl7_fhir_r4_core/payment_notice.py new file mode 100644 index 000000000..854ceec19 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/payment_notice.py @@ -0,0 +1,42 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import CodeableConcept, Identifier, Money, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class PaymentNotice(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='PaymentNotice', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='PaymentNotice' + ) + amount: Money = Field(alias="amount", serialization_alias="amount") + created: str = Field(alias="created", serialization_alias="created") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + payee: Reference | None = Field(None, alias="payee", serialization_alias="payee") + payment: Reference = Field(alias="payment", serialization_alias="payment") + payment_date: str | None = Field(None, alias="paymentDate", serialization_alias="paymentDate") + payment_status: CodeableConcept | None = Field(None, alias="paymentStatus", serialization_alias="paymentStatus") + provider: Reference | None = Field(None, alias="provider", serialization_alias="provider") + recipient: Reference = Field(alias="recipient", serialization_alias="recipient") + request: Reference | None = Field(None, alias="request", serialization_alias="request") + response: Reference | None = Field(None, alias="response", serialization_alias="response") + status: Literal["active", "cancelled", "draft", "entered-in-error"] = Field(alias="status", serialization_alias="status") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> PaymentNotice: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/payment_reconciliation.py b/examples/python/generated/hl7_fhir_r4_core/payment_reconciliation.py new file mode 100644 index 000000000..9d1565ae3 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/payment_reconciliation.py @@ -0,0 +1,66 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Money, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class PaymentReconciliationDetail(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount: Money | None = Field(None, alias="amount", serialization_alias="amount") + date: str | None = Field(None, alias="date", serialization_alias="date") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + payee: Reference | None = Field(None, alias="payee", serialization_alias="payee") + predecessor: Identifier | None = Field(None, alias="predecessor", serialization_alias="predecessor") + request: Reference | None = Field(None, alias="request", serialization_alias="request") + response: Reference | None = Field(None, alias="response", serialization_alias="response") + responsible: Reference | None = Field(None, alias="responsible", serialization_alias="responsible") + submitter: Reference | None = Field(None, alias="submitter", serialization_alias="submitter") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + +class PaymentReconciliationProcessNote(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + text: str | None = Field(None, alias="text", serialization_alias="text") + type: Literal["display", "print", "printoper"] | None = Field(None, alias="type", serialization_alias="type") + + +class PaymentReconciliation(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='PaymentReconciliation', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='PaymentReconciliation' + ) + created: str = Field(alias="created", serialization_alias="created") + detail: PyList[PaymentReconciliationDetail] | None = Field(None, alias="detail", serialization_alias="detail") + disposition: str | None = Field(None, alias="disposition", serialization_alias="disposition") + form_code: CodeableConcept | None = Field(None, alias="formCode", serialization_alias="formCode") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + outcome: Literal["queued", "complete", "error", "partial"] | None = Field(None, alias="outcome", serialization_alias="outcome") + payment_amount: Money = Field(alias="paymentAmount", serialization_alias="paymentAmount") + payment_date: str = Field(alias="paymentDate", serialization_alias="paymentDate") + payment_identifier: Identifier | None = Field(None, alias="paymentIdentifier", serialization_alias="paymentIdentifier") + payment_issuer: Reference | None = Field(None, alias="paymentIssuer", serialization_alias="paymentIssuer") + period: Period | None = Field(None, alias="period", serialization_alias="period") + process_note: PyList[PaymentReconciliationProcessNote] | None = Field(None, alias="processNote", serialization_alias="processNote") + request: Reference | None = Field(None, alias="request", serialization_alias="request") + requestor: Reference | None = Field(None, alias="requestor", serialization_alias="requestor") + status: Literal["active", "cancelled", "draft", "entered-in-error"] = Field(alias="status", serialization_alias="status") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> PaymentReconciliation: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/person.py b/examples/python/generated/hl7_fhir_r4_core/person.py new file mode 100644 index 000000000..2896cec06 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/person.py @@ -0,0 +1,48 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Address, Attachment, BackboneElement, ContactPoint, HumanName, Identifier, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class PersonLink(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + assurance: Literal["level1", "level2", "level3", "level4"] | None = Field(None, alias="assurance", serialization_alias="assurance") + target: Reference = Field(alias="target", serialization_alias="target") + + +class Person(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Person', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Person' + ) + active: bool | None = Field(None, alias="active", serialization_alias="active") + address: PyList[Address] | None = Field(None, alias="address", serialization_alias="address") + birth_date: str | None = Field(None, alias="birthDate", serialization_alias="birthDate") + gender: Literal["male", "female", "other", "unknown"] | None = Field(None, alias="gender", serialization_alias="gender") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + link: PyList[PersonLink] | None = Field(None, alias="link", serialization_alias="link") + managing_organization: Reference | None = Field(None, alias="managingOrganization", serialization_alias="managingOrganization") + name: PyList[HumanName] | None = Field(None, alias="name", serialization_alias="name") + photo: Attachment | None = Field(None, alias="photo", serialization_alias="photo") + telecom: PyList[ContactPoint] | None = Field(None, alias="telecom", serialization_alias="telecom") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Person: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/plan_definition.py b/examples/python/generated/hl7_fhir_r4_core/plan_definition.py new file mode 100644 index 000000000..7a1b64553 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/plan_definition.py @@ -0,0 +1,143 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Age, BackboneElement, CodeableConcept, ContactDetail, DataRequirement, Duration, Expression, Identifier, \ + Period, Quantity, Range, Reference, RelatedArtifact, Timing, TriggerDefinition, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class PlanDefinitionAction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + action: PyList[PlanDefinitionAction] | None = Field(None, alias="action", serialization_alias="action") + cardinality_behavior: Literal["single", "multiple"] | None = Field(None, alias="cardinalityBehavior", serialization_alias="cardinalityBehavior") + code: PyList[CodeableConcept] | None = Field(None, alias="code", serialization_alias="code") + condition: PyList[PlanDefinitionActionCondition] | None = Field(None, alias="condition", serialization_alias="condition") + definition_canonical: str | None = Field(None, alias="definitionCanonical", serialization_alias="definitionCanonical") + definition_uri: str | None = Field(None, alias="definitionUri", serialization_alias="definitionUri") + description: str | None = Field(None, alias="description", serialization_alias="description") + documentation: PyList[RelatedArtifact] | None = Field(None, alias="documentation", serialization_alias="documentation") + dynamic_value: PyList[PlanDefinitionActionDynamicValue] | None = Field(None, alias="dynamicValue", serialization_alias="dynamicValue") + goal_id: PyList[str] | None = Field(None, alias="goalId", serialization_alias="goalId") + grouping_behavior: Literal["visual-group", "logical-group", "sentence-group"] | None = Field(None, alias="groupingBehavior", serialization_alias="groupingBehavior") + input: PyList[DataRequirement] | None = Field(None, alias="input", serialization_alias="input") + output: PyList[DataRequirement] | None = Field(None, alias="output", serialization_alias="output") + participant: PyList[PlanDefinitionActionParticipant] | None = Field(None, alias="participant", serialization_alias="participant") + precheck_behavior: Literal["yes", "no"] | None = Field(None, alias="precheckBehavior", serialization_alias="precheckBehavior") + prefix: str | None = Field(None, alias="prefix", serialization_alias="prefix") + priority: Literal["routine", "urgent", "asap", "stat"] | None = Field(None, alias="priority", serialization_alias="priority") + reason: PyList[CodeableConcept] | None = Field(None, alias="reason", serialization_alias="reason") + related_action: PyList[PlanDefinitionActionRelatedAction] | None = Field(None, alias="relatedAction", serialization_alias="relatedAction") + required_behavior: Literal["must", "could", "must-unless-documented"] | None = Field(None, alias="requiredBehavior", serialization_alias="requiredBehavior") + selection_behavior: Literal["any", "all", "all-or-none", "exactly-one", "at-most-one", "one-or-more"] | None = Field(None, alias="selectionBehavior", serialization_alias="selectionBehavior") + subject_codeable_concept: CodeableConcept | None = Field(None, alias="subjectCodeableConcept", serialization_alias="subjectCodeableConcept") + subject_reference: Reference | None = Field(None, alias="subjectReference", serialization_alias="subjectReference") + text_equivalent: str | None = Field(None, alias="textEquivalent", serialization_alias="textEquivalent") + timing_age: Age | None = Field(None, alias="timingAge", serialization_alias="timingAge") + timing_date_time: str | None = Field(None, alias="timingDateTime", serialization_alias="timingDateTime") + timing_duration: Duration | None = Field(None, alias="timingDuration", serialization_alias="timingDuration") + timing_period: Period | None = Field(None, alias="timingPeriod", serialization_alias="timingPeriod") + timing_range: Range | None = Field(None, alias="timingRange", serialization_alias="timingRange") + timing_timing: Timing | None = Field(None, alias="timingTiming", serialization_alias="timingTiming") + title: str | None = Field(None, alias="title", serialization_alias="title") + transform: str | None = Field(None, alias="transform", serialization_alias="transform") + trigger: PyList[TriggerDefinition] | None = Field(None, alias="trigger", serialization_alias="trigger") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class PlanDefinitionActionCondition(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + expression: Expression | None = Field(None, alias="expression", serialization_alias="expression") + kind: Literal["applicability", "start", "stop"] = Field(alias="kind", serialization_alias="kind") + +class PlanDefinitionActionDynamicValue(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + expression: Expression | None = Field(None, alias="expression", serialization_alias="expression") + path: str | None = Field(None, alias="path", serialization_alias="path") + +class PlanDefinitionActionParticipant(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + role: CodeableConcept | None = Field(None, alias="role", serialization_alias="role") + type: Literal["patient", "practitioner", "related-person", "device"] = Field(alias="type", serialization_alias="type") + +class PlanDefinitionActionRelatedAction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + action_id: str = Field(alias="actionId", serialization_alias="actionId") + offset_duration: Duration | None = Field(None, alias="offsetDuration", serialization_alias="offsetDuration") + offset_range: Range | None = Field(None, alias="offsetRange", serialization_alias="offsetRange") + relationship: Literal["before-start", "before", "before-end", "concurrent-with-start", "concurrent", "concurrent-with-end", "after-start", "after", "after-end"] = Field(alias="relationship", serialization_alias="relationship") + +class PlanDefinitionGoal(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + addresses: PyList[CodeableConcept] | None = Field(None, alias="addresses", serialization_alias="addresses") + category: CodeableConcept | None = Field(None, alias="category", serialization_alias="category") + description: CodeableConcept = Field(alias="description", serialization_alias="description") + documentation: PyList[RelatedArtifact] | None = Field(None, alias="documentation", serialization_alias="documentation") + priority: CodeableConcept | None = Field(None, alias="priority", serialization_alias="priority") + start: CodeableConcept | None = Field(None, alias="start", serialization_alias="start") + target: PyList[PlanDefinitionGoalTarget] | None = Field(None, alias="target", serialization_alias="target") + +class PlanDefinitionGoalTarget(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + detail_codeable_concept: CodeableConcept | None = Field(None, alias="detailCodeableConcept", serialization_alias="detailCodeableConcept") + detail_quantity: Quantity | None = Field(None, alias="detailQuantity", serialization_alias="detailQuantity") + detail_range: Range | None = Field(None, alias="detailRange", serialization_alias="detailRange") + due: Duration | None = Field(None, alias="due", serialization_alias="due") + measure: CodeableConcept | None = Field(None, alias="measure", serialization_alias="measure") + + +class PlanDefinition(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='PlanDefinition', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='PlanDefinition' + ) + action: PyList[PlanDefinitionAction] | None = Field(None, alias="action", serialization_alias="action") + approval_date: str | None = Field(None, alias="approvalDate", serialization_alias="approvalDate") + author: PyList[ContactDetail] | None = Field(None, alias="author", serialization_alias="author") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + editor: PyList[ContactDetail] | None = Field(None, alias="editor", serialization_alias="editor") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + endorser: PyList[ContactDetail] | None = Field(None, alias="endorser", serialization_alias="endorser") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + goal: PyList[PlanDefinitionGoal] | None = Field(None, alias="goal", serialization_alias="goal") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + last_review_date: str | None = Field(None, alias="lastReviewDate", serialization_alias="lastReviewDate") + library: PyList[str] | None = Field(None, alias="library", serialization_alias="library") + name: str | None = Field(None, alias="name", serialization_alias="name") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + related_artifact: PyList[RelatedArtifact] | None = Field(None, alias="relatedArtifact", serialization_alias="relatedArtifact") + reviewer: PyList[ContactDetail] | None = Field(None, alias="reviewer", serialization_alias="reviewer") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + subject_codeable_concept: CodeableConcept | None = Field(None, alias="subjectCodeableConcept", serialization_alias="subjectCodeableConcept") + subject_reference: Reference | None = Field(None, alias="subjectReference", serialization_alias="subjectReference") + subtitle: str | None = Field(None, alias="subtitle", serialization_alias="subtitle") + title: str | None = Field(None, alias="title", serialization_alias="title") + topic: PyList[CodeableConcept] | None = Field(None, alias="topic", serialization_alias="topic") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + url: str | None = Field(None, alias="url", serialization_alias="url") + usage: str | None = Field(None, alias="usage", serialization_alias="usage") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> PlanDefinition: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/practitioner.py b/examples/python/generated/hl7_fhir_r4_core/practitioner.py new file mode 100644 index 000000000..51edf0e02 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/practitioner.py @@ -0,0 +1,50 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Address, Attachment, BackboneElement, CodeableConcept, ContactPoint, HumanName, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class PractitionerQualification(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + issuer: Reference | None = Field(None, alias="issuer", serialization_alias="issuer") + period: Period | None = Field(None, alias="period", serialization_alias="period") + + +class Practitioner(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Practitioner', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Practitioner' + ) + active: bool | None = Field(None, alias="active", serialization_alias="active") + address: PyList[Address] | None = Field(None, alias="address", serialization_alias="address") + birth_date: str | None = Field(None, alias="birthDate", serialization_alias="birthDate") + communication: PyList[CodeableConcept] | None = Field(None, alias="communication", serialization_alias="communication") + gender: Literal["male", "female", "other", "unknown"] | None = Field(None, alias="gender", serialization_alias="gender") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + name: PyList[HumanName] | None = Field(None, alias="name", serialization_alias="name") + photo: PyList[Attachment] | None = Field(None, alias="photo", serialization_alias="photo") + qualification: PyList[PractitionerQualification] | None = Field(None, alias="qualification", serialization_alias="qualification") + telecom: PyList[ContactPoint] | None = Field(None, alias="telecom", serialization_alias="telecom") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Practitioner: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/practitioner_role.py b/examples/python/generated/hl7_fhir_r4_core/practitioner_role.py new file mode 100644 index 000000000..05c33e302 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/practitioner_role.py @@ -0,0 +1,59 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, ContactPoint, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class PractitionerRoleAvailableTime(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + all_day: bool | None = Field(None, alias="allDay", serialization_alias="allDay") + available_end_time: str | None = Field(None, alias="availableEndTime", serialization_alias="availableEndTime") + available_start_time: str | None = Field(None, alias="availableStartTime", serialization_alias="availableStartTime") + days_of_week: PyList[Literal["mon", "tue", "wed", "thu", "fri", "sat", "sun"]] | None = Field(None, alias="daysOfWeek", serialization_alias="daysOfWeek") + +class PractitionerRoleNotAvailable(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str = Field(alias="description", serialization_alias="description") + during: Period | None = Field(None, alias="during", serialization_alias="during") + + +class PractitionerRole(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='PractitionerRole', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='PractitionerRole' + ) + active: bool | None = Field(None, alias="active", serialization_alias="active") + availability_exceptions: str | None = Field(None, alias="availabilityExceptions", serialization_alias="availabilityExceptions") + available_time: PyList[PractitionerRoleAvailableTime] | None = Field(None, alias="availableTime", serialization_alias="availableTime") + code: PyList[CodeableConcept] | None = Field(None, alias="code", serialization_alias="code") + endpoint: PyList[Reference] | None = Field(None, alias="endpoint", serialization_alias="endpoint") + healthcare_service: PyList[Reference] | None = Field(None, alias="healthcareService", serialization_alias="healthcareService") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + location: PyList[Reference] | None = Field(None, alias="location", serialization_alias="location") + not_available: PyList[PractitionerRoleNotAvailable] | None = Field(None, alias="notAvailable", serialization_alias="notAvailable") + organization: Reference | None = Field(None, alias="organization", serialization_alias="organization") + period: Period | None = Field(None, alias="period", serialization_alias="period") + practitioner: Reference | None = Field(None, alias="practitioner", serialization_alias="practitioner") + specialty: PyList[CodeableConcept] | None = Field(None, alias="specialty", serialization_alias="specialty") + telecom: PyList[ContactPoint] | None = Field(None, alias="telecom", serialization_alias="telecom") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> PractitionerRole: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/procedure.py b/examples/python/generated/hl7_fhir_r4_core/procedure.py new file mode 100644 index 000000000..193a06d0f --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/procedure.py @@ -0,0 +1,76 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Age, Annotation, BackboneElement, CodeableConcept, Identifier, Period, Range, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ProcedureFocalDevice(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + action: CodeableConcept | None = Field(None, alias="action", serialization_alias="action") + manipulated: Reference = Field(alias="manipulated", serialization_alias="manipulated") + +class ProcedurePerformer(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + actor: Reference = Field(alias="actor", serialization_alias="actor") + function: CodeableConcept | None = Field(None, alias="function", serialization_alias="function") + on_behalf_of: Reference | None = Field(None, alias="onBehalfOf", serialization_alias="onBehalfOf") + + +class Procedure(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Procedure', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Procedure' + ) + asserter: Reference | None = Field(None, alias="asserter", serialization_alias="asserter") + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + body_site: PyList[CodeableConcept] | None = Field(None, alias="bodySite", serialization_alias="bodySite") + category: CodeableConcept | None = Field(None, alias="category", serialization_alias="category") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + complication: PyList[CodeableConcept] | None = Field(None, alias="complication", serialization_alias="complication") + complication_detail: PyList[Reference] | None = Field(None, alias="complicationDetail", serialization_alias="complicationDetail") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + focal_device: PyList[ProcedureFocalDevice] | None = Field(None, alias="focalDevice", serialization_alias="focalDevice") + follow_up: PyList[CodeableConcept] | None = Field(None, alias="followUp", serialization_alias="followUp") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + instantiates_canonical: PyList[str] | None = Field(None, alias="instantiatesCanonical", serialization_alias="instantiatesCanonical") + instantiates_uri: PyList[str] | None = Field(None, alias="instantiatesUri", serialization_alias="instantiatesUri") + location: Reference | None = Field(None, alias="location", serialization_alias="location") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + outcome: CodeableConcept | None = Field(None, alias="outcome", serialization_alias="outcome") + part_of: PyList[Reference] | None = Field(None, alias="partOf", serialization_alias="partOf") + performed_age: Age | None = Field(None, alias="performedAge", serialization_alias="performedAge") + performed_date_time: str | None = Field(None, alias="performedDateTime", serialization_alias="performedDateTime") + performed_period: Period | None = Field(None, alias="performedPeriod", serialization_alias="performedPeriod") + performed_range: Range | None = Field(None, alias="performedRange", serialization_alias="performedRange") + performed_string: str | None = Field(None, alias="performedString", serialization_alias="performedString") + performer: PyList[ProcedurePerformer] | None = Field(None, alias="performer", serialization_alias="performer") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + recorder: Reference | None = Field(None, alias="recorder", serialization_alias="recorder") + report: PyList[Reference] | None = Field(None, alias="report", serialization_alias="report") + status: Literal["preparation", "in-progress", "not-done", "on-hold", "stopped", "completed", "entered-in-error", "unknown"] = Field(alias="status", serialization_alias="status") + status_reason: CodeableConcept | None = Field(None, alias="statusReason", serialization_alias="statusReason") + subject: Reference = Field(alias="subject", serialization_alias="subject") + used_code: PyList[CodeableConcept] | None = Field(None, alias="usedCode", serialization_alias="usedCode") + used_reference: PyList[Reference] | None = Field(None, alias="usedReference", serialization_alias="usedReference") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Procedure: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/provenance.py b/examples/python/generated/hl7_fhir_r4_core/provenance.py new file mode 100644 index 000000000..2ad457835 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/provenance.py @@ -0,0 +1,57 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Period, Reference, Signature +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ProvenanceAgent(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + on_behalf_of: Reference | None = Field(None, alias="onBehalfOf", serialization_alias="onBehalfOf") + role: PyList[CodeableConcept] | None = Field(None, alias="role", serialization_alias="role") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + who: Reference = Field(alias="who", serialization_alias="who") + +class ProvenanceEntity(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + agent: PyList[ProvenanceAgent] | None = Field(None, alias="agent", serialization_alias="agent") + role: Literal["derivation", "revision", "quotation", "source", "removal"] = Field(alias="role", serialization_alias="role") + what: Reference = Field(alias="what", serialization_alias="what") + + +class Provenance(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Provenance', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Provenance' + ) + activity: CodeableConcept | None = Field(None, alias="activity", serialization_alias="activity") + agent: PyList[ProvenanceAgent] = Field(alias="agent", serialization_alias="agent") + entity: PyList[ProvenanceEntity] | None = Field(None, alias="entity", serialization_alias="entity") + location: Reference | None = Field(None, alias="location", serialization_alias="location") + occurred_date_time: str | None = Field(None, alias="occurredDateTime", serialization_alias="occurredDateTime") + occurred_period: Period | None = Field(None, alias="occurredPeriod", serialization_alias="occurredPeriod") + policy: PyList[str] | None = Field(None, alias="policy", serialization_alias="policy") + reason: PyList[CodeableConcept] | None = Field(None, alias="reason", serialization_alias="reason") + recorded: str = Field(alias="recorded", serialization_alias="recorded") + signature: PyList[Signature] | None = Field(None, alias="signature", serialization_alias="signature") + target: PyList[Reference] = Field(alias="target", serialization_alias="target") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Provenance: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/questionnaire.py b/examples/python/generated/hl7_fhir_r4_core/questionnaire.py new file mode 100644 index 000000000..97c2908cc --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/questionnaire.py @@ -0,0 +1,115 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Attachment, BackboneElement, CodeableConcept, Coding, ContactDetail, Identifier, Period, Quantity, Reference, \ + UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class QuestionnaireItem(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + answer_option: PyList[QuestionnaireItemAnswerOption] | None = Field(None, alias="answerOption", serialization_alias="answerOption") + answer_value_set: str | None = Field(None, alias="answerValueSet", serialization_alias="answerValueSet") + code: PyList[Coding] | None = Field(None, alias="code", serialization_alias="code") + definition: str | None = Field(None, alias="definition", serialization_alias="definition") + enable_behavior: Literal["all", "any"] | None = Field(None, alias="enableBehavior", serialization_alias="enableBehavior") + enable_when: PyList[QuestionnaireItemEnableWhen] | None = Field(None, alias="enableWhen", serialization_alias="enableWhen") + initial: PyList[QuestionnaireItemInitial] | None = Field(None, alias="initial", serialization_alias="initial") + item: PyList[QuestionnaireItem] | None = Field(None, alias="item", serialization_alias="item") + link_id: str = Field(alias="linkId", serialization_alias="linkId") + max_length: int | None = Field(None, alias="maxLength", serialization_alias="maxLength") + prefix: str | None = Field(None, alias="prefix", serialization_alias="prefix") + read_only: bool | None = Field(None, alias="readOnly", serialization_alias="readOnly") + repeats: bool | None = Field(None, alias="repeats", serialization_alias="repeats") + required: bool | None = Field(None, alias="required", serialization_alias="required") + text: str | None = Field(None, alias="text", serialization_alias="text") + type: Literal["group", "display", "question", "boolean", "decimal", "integer", "date", "dateTime", "time", "string", "text", "url", "choice", "open-choice", "attachment", "reference", "quantity"] = Field(alias="type", serialization_alias="type") + +class QuestionnaireItemAnswerOption(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + initial_selected: bool | None = Field(None, alias="initialSelected", serialization_alias="initialSelected") + value_coding: Coding | None = Field(None, alias="valueCoding", serialization_alias="valueCoding") + value_date: str | None = Field(None, alias="valueDate", serialization_alias="valueDate") + value_integer: int | None = Field(None, alias="valueInteger", serialization_alias="valueInteger") + value_reference: Reference | None = Field(None, alias="valueReference", serialization_alias="valueReference") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + value_time: str | None = Field(None, alias="valueTime", serialization_alias="valueTime") + +class QuestionnaireItemEnableWhen(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + answer_boolean: bool | None = Field(None, alias="answerBoolean", serialization_alias="answerBoolean") + answer_coding: Coding | None = Field(None, alias="answerCoding", serialization_alias="answerCoding") + answer_date: str | None = Field(None, alias="answerDate", serialization_alias="answerDate") + answer_date_time: str | None = Field(None, alias="answerDateTime", serialization_alias="answerDateTime") + answer_decimal: float | None = Field(None, alias="answerDecimal", serialization_alias="answerDecimal") + answer_integer: int | None = Field(None, alias="answerInteger", serialization_alias="answerInteger") + answer_quantity: Quantity | None = Field(None, alias="answerQuantity", serialization_alias="answerQuantity") + answer_reference: Reference | None = Field(None, alias="answerReference", serialization_alias="answerReference") + answer_string: str | None = Field(None, alias="answerString", serialization_alias="answerString") + answer_time: str | None = Field(None, alias="answerTime", serialization_alias="answerTime") + operator: Literal["exists", "=", "!=", ">", "<", ">=", "<="] = Field(alias="operator", serialization_alias="operator") + question: str = Field(alias="question", serialization_alias="question") + +class QuestionnaireItemInitial(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + value_attachment: Attachment | None = Field(None, alias="valueAttachment", serialization_alias="valueAttachment") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_coding: Coding | None = Field(None, alias="valueCoding", serialization_alias="valueCoding") + value_date: str | None = Field(None, alias="valueDate", serialization_alias="valueDate") + value_date_time: str | None = Field(None, alias="valueDateTime", serialization_alias="valueDateTime") + value_decimal: float | None = Field(None, alias="valueDecimal", serialization_alias="valueDecimal") + value_integer: int | None = Field(None, alias="valueInteger", serialization_alias="valueInteger") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_reference: Reference | None = Field(None, alias="valueReference", serialization_alias="valueReference") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + value_time: str | None = Field(None, alias="valueTime", serialization_alias="valueTime") + value_uri: str | None = Field(None, alias="valueUri", serialization_alias="valueUri") + + +class Questionnaire(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Questionnaire', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Questionnaire' + ) + approval_date: str | None = Field(None, alias="approvalDate", serialization_alias="approvalDate") + code: PyList[Coding] | None = Field(None, alias="code", serialization_alias="code") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + derived_from: PyList[str] | None = Field(None, alias="derivedFrom", serialization_alias="derivedFrom") + description: str | None = Field(None, alias="description", serialization_alias="description") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + item: PyList[QuestionnaireItem] | None = Field(None, alias="item", serialization_alias="item") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + last_review_date: str | None = Field(None, alias="lastReviewDate", serialization_alias="lastReviewDate") + name: str | None = Field(None, alias="name", serialization_alias="name") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + subject_type: PyList[str] | None = Field(None, alias="subjectType", serialization_alias="subjectType") + title: str | None = Field(None, alias="title", serialization_alias="title") + url: str | None = Field(None, alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Questionnaire: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/questionnaire_response.py b/examples/python/generated/hl7_fhir_r4_core/questionnaire_response.py new file mode 100644 index 000000000..b3b4477f6 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/questionnaire_response.py @@ -0,0 +1,68 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Attachment, BackboneElement, Coding, Identifier, Quantity, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class QuestionnaireResponseItem(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + answer: PyList[QuestionnaireResponseItemAnswer] | None = Field(None, alias="answer", serialization_alias="answer") + definition: str | None = Field(None, alias="definition", serialization_alias="definition") + item: PyList[QuestionnaireResponseItem] | None = Field(None, alias="item", serialization_alias="item") + link_id: str = Field(alias="linkId", serialization_alias="linkId") + text: str | None = Field(None, alias="text", serialization_alias="text") + +class QuestionnaireResponseItemAnswer(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + item: PyList[QuestionnaireResponseItem] | None = Field(None, alias="item", serialization_alias="item") + value_attachment: Attachment | None = Field(None, alias="valueAttachment", serialization_alias="valueAttachment") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_coding: Coding | None = Field(None, alias="valueCoding", serialization_alias="valueCoding") + value_date: str | None = Field(None, alias="valueDate", serialization_alias="valueDate") + value_date_time: str | None = Field(None, alias="valueDateTime", serialization_alias="valueDateTime") + value_decimal: float | None = Field(None, alias="valueDecimal", serialization_alias="valueDecimal") + value_integer: int | None = Field(None, alias="valueInteger", serialization_alias="valueInteger") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_reference: Reference | None = Field(None, alias="valueReference", serialization_alias="valueReference") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + value_time: str | None = Field(None, alias="valueTime", serialization_alias="valueTime") + value_uri: str | None = Field(None, alias="valueUri", serialization_alias="valueUri") + + +class QuestionnaireResponse(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='QuestionnaireResponse', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='QuestionnaireResponse' + ) + author: Reference | None = Field(None, alias="author", serialization_alias="author") + authored: str | None = Field(None, alias="authored", serialization_alias="authored") + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + item: PyList[QuestionnaireResponseItem] | None = Field(None, alias="item", serialization_alias="item") + part_of: PyList[Reference] | None = Field(None, alias="partOf", serialization_alias="partOf") + questionnaire: str | None = Field(None, alias="questionnaire", serialization_alias="questionnaire") + source: Reference | None = Field(None, alias="source", serialization_alias="source") + status: Literal["in-progress", "completed", "amended", "entered-in-error", "stopped"] = Field(alias="status", serialization_alias="status") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> QuestionnaireResponse: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/related_person.py b/examples/python/generated/hl7_fhir_r4_core/related_person.py new file mode 100644 index 000000000..588b24084 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/related_person.py @@ -0,0 +1,50 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Address, Attachment, BackboneElement, CodeableConcept, ContactPoint, HumanName, Identifier, Period, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class RelatedPersonCommunication(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + language: CodeableConcept = Field(alias="language", serialization_alias="language") + preferred: bool | None = Field(None, alias="preferred", serialization_alias="preferred") + + +class RelatedPerson(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='RelatedPerson', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='RelatedPerson' + ) + active: bool | None = Field(None, alias="active", serialization_alias="active") + address: PyList[Address] | None = Field(None, alias="address", serialization_alias="address") + birth_date: str | None = Field(None, alias="birthDate", serialization_alias="birthDate") + communication: PyList[RelatedPersonCommunication] | None = Field(None, alias="communication", serialization_alias="communication") + gender: Literal["male", "female", "other", "unknown"] | None = Field(None, alias="gender", serialization_alias="gender") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + name: PyList[HumanName] | None = Field(None, alias="name", serialization_alias="name") + patient: Reference = Field(alias="patient", serialization_alias="patient") + period: Period | None = Field(None, alias="period", serialization_alias="period") + photo: PyList[Attachment] | None = Field(None, alias="photo", serialization_alias="photo") + relationship: PyList[CodeableConcept] | None = Field(None, alias="relationship", serialization_alias="relationship") + telecom: PyList[ContactPoint] | None = Field(None, alias="telecom", serialization_alias="telecom") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> RelatedPerson: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/request_group.py b/examples/python/generated/hl7_fhir_r4_core/request_group.py new file mode 100644 index 000000000..931f85d66 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/request_group.py @@ -0,0 +1,91 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Age, Annotation, BackboneElement, CodeableConcept, Duration, Expression, Identifier, Period, Range, Reference, \ + RelatedArtifact, Timing +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class RequestGroupAction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + action: PyList[RequestGroupAction] | None = Field(None, alias="action", serialization_alias="action") + cardinality_behavior: Literal["single", "multiple"] | None = Field(None, alias="cardinalityBehavior", serialization_alias="cardinalityBehavior") + code: PyList[CodeableConcept] | None = Field(None, alias="code", serialization_alias="code") + condition: PyList[RequestGroupActionCondition] | None = Field(None, alias="condition", serialization_alias="condition") + description: str | None = Field(None, alias="description", serialization_alias="description") + documentation: PyList[RelatedArtifact] | None = Field(None, alias="documentation", serialization_alias="documentation") + grouping_behavior: Literal["visual-group", "logical-group", "sentence-group"] | None = Field(None, alias="groupingBehavior", serialization_alias="groupingBehavior") + participant: PyList[Reference] | None = Field(None, alias="participant", serialization_alias="participant") + precheck_behavior: Literal["yes", "no"] | None = Field(None, alias="precheckBehavior", serialization_alias="precheckBehavior") + prefix: str | None = Field(None, alias="prefix", serialization_alias="prefix") + priority: Literal["routine", "urgent", "asap", "stat"] | None = Field(None, alias="priority", serialization_alias="priority") + related_action: PyList[RequestGroupActionRelatedAction] | None = Field(None, alias="relatedAction", serialization_alias="relatedAction") + required_behavior: Literal["must", "could", "must-unless-documented"] | None = Field(None, alias="requiredBehavior", serialization_alias="requiredBehavior") + resource: Reference | None = Field(None, alias="resource", serialization_alias="resource") + selection_behavior: Literal["any", "all", "all-or-none", "exactly-one", "at-most-one", "one-or-more"] | None = Field(None, alias="selectionBehavior", serialization_alias="selectionBehavior") + text_equivalent: str | None = Field(None, alias="textEquivalent", serialization_alias="textEquivalent") + timing_age: Age | None = Field(None, alias="timingAge", serialization_alias="timingAge") + timing_date_time: str | None = Field(None, alias="timingDateTime", serialization_alias="timingDateTime") + timing_duration: Duration | None = Field(None, alias="timingDuration", serialization_alias="timingDuration") + timing_period: Period | None = Field(None, alias="timingPeriod", serialization_alias="timingPeriod") + timing_range: Range | None = Field(None, alias="timingRange", serialization_alias="timingRange") + timing_timing: Timing | None = Field(None, alias="timingTiming", serialization_alias="timingTiming") + title: str | None = Field(None, alias="title", serialization_alias="title") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class RequestGroupActionCondition(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + expression: Expression | None = Field(None, alias="expression", serialization_alias="expression") + kind: Literal["applicability", "start", "stop"] = Field(alias="kind", serialization_alias="kind") + +class RequestGroupActionRelatedAction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + action_id: str = Field(alias="actionId", serialization_alias="actionId") + offset_duration: Duration | None = Field(None, alias="offsetDuration", serialization_alias="offsetDuration") + offset_range: Range | None = Field(None, alias="offsetRange", serialization_alias="offsetRange") + relationship: Literal["before-start", "before", "before-end", "concurrent-with-start", "concurrent", "concurrent-with-end", "after-start", "after", "after-end"] = Field(alias="relationship", serialization_alias="relationship") + + +class RequestGroup(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='RequestGroup', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='RequestGroup' + ) + action: PyList[RequestGroupAction] | None = Field(None, alias="action", serialization_alias="action") + author: Reference | None = Field(None, alias="author", serialization_alias="author") + authored_on: str | None = Field(None, alias="authoredOn", serialization_alias="authoredOn") + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + group_identifier: Identifier | None = Field(None, alias="groupIdentifier", serialization_alias="groupIdentifier") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + instantiates_canonical: PyList[str] | None = Field(None, alias="instantiatesCanonical", serialization_alias="instantiatesCanonical") + instantiates_uri: PyList[str] | None = Field(None, alias="instantiatesUri", serialization_alias="instantiatesUri") + intent: Literal["proposal", "plan", "directive", "order", "original-order", "reflex-order", "filler-order", "instance-order", "option"] = Field(alias="intent", serialization_alias="intent") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + priority: Literal["routine", "urgent", "asap", "stat"] | None = Field(None, alias="priority", serialization_alias="priority") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + replaces: PyList[Reference] | None = Field(None, alias="replaces", serialization_alias="replaces") + status: Literal["draft", "active", "on-hold", "revoked", "completed", "entered-in-error", "unknown"] = Field(alias="status", serialization_alias="status") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> RequestGroup: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/research_definition.py b/examples/python/generated/hl7_fhir_r4_core/research_definition.py new file mode 100644 index 000000000..bd975da1b --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/research_definition.py @@ -0,0 +1,67 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + CodeableConcept, ContactDetail, Identifier, Period, Reference, RelatedArtifact, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ResearchDefinition(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ResearchDefinition', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ResearchDefinition' + ) + approval_date: str | None = Field(None, alias="approvalDate", serialization_alias="approvalDate") + author: PyList[ContactDetail] | None = Field(None, alias="author", serialization_alias="author") + comment: PyList[str] | None = Field(None, alias="comment", serialization_alias="comment") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + editor: PyList[ContactDetail] | None = Field(None, alias="editor", serialization_alias="editor") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + endorser: PyList[ContactDetail] | None = Field(None, alias="endorser", serialization_alias="endorser") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + exposure: Reference | None = Field(None, alias="exposure", serialization_alias="exposure") + exposure_alternative: Reference | None = Field(None, alias="exposureAlternative", serialization_alias="exposureAlternative") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + last_review_date: str | None = Field(None, alias="lastReviewDate", serialization_alias="lastReviewDate") + library: PyList[str] | None = Field(None, alias="library", serialization_alias="library") + name: str | None = Field(None, alias="name", serialization_alias="name") + outcome: Reference | None = Field(None, alias="outcome", serialization_alias="outcome") + population: Reference = Field(alias="population", serialization_alias="population") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + related_artifact: PyList[RelatedArtifact] | None = Field(None, alias="relatedArtifact", serialization_alias="relatedArtifact") + reviewer: PyList[ContactDetail] | None = Field(None, alias="reviewer", serialization_alias="reviewer") + short_title: str | None = Field(None, alias="shortTitle", serialization_alias="shortTitle") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + subject_codeable_concept: CodeableConcept | None = Field(None, alias="subjectCodeableConcept", serialization_alias="subjectCodeableConcept") + subject_reference: Reference | None = Field(None, alias="subjectReference", serialization_alias="subjectReference") + subtitle: str | None = Field(None, alias="subtitle", serialization_alias="subtitle") + title: str | None = Field(None, alias="title", serialization_alias="title") + topic: PyList[CodeableConcept] | None = Field(None, alias="topic", serialization_alias="topic") + url: str | None = Field(None, alias="url", serialization_alias="url") + usage: str | None = Field(None, alias="usage", serialization_alias="usage") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ResearchDefinition: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/research_element_definition.py b/examples/python/generated/hl7_fhir_r4_core/research_element_definition.py new file mode 100644 index 000000000..9dabd860c --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/research_element_definition.py @@ -0,0 +1,92 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, ContactDetail, DataRequirement, Duration, Expression, Identifier, Period, \ + Reference, RelatedArtifact, Timing, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ResearchElementDefinitionCharacteristic(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + definition_canonical: str | None = Field(None, alias="definitionCanonical", serialization_alias="definitionCanonical") + definition_codeable_concept: CodeableConcept | None = Field(None, alias="definitionCodeableConcept", serialization_alias="definitionCodeableConcept") + definition_data_requirement: DataRequirement | None = Field(None, alias="definitionDataRequirement", serialization_alias="definitionDataRequirement") + definition_expression: Expression | None = Field(None, alias="definitionExpression", serialization_alias="definitionExpression") + exclude: bool | None = Field(None, alias="exclude", serialization_alias="exclude") + participant_effective_date_time: str | None = Field(None, alias="participantEffectiveDateTime", serialization_alias="participantEffectiveDateTime") + participant_effective_description: str | None = Field(None, alias="participantEffectiveDescription", serialization_alias="participantEffectiveDescription") + participant_effective_duration: Duration | None = Field(None, alias="participantEffectiveDuration", serialization_alias="participantEffectiveDuration") + participant_effective_group_measure: Literal["mean", "median", "mean-of-mean", "mean-of-median", "median-of-mean", "median-of-median"] | None = Field(None, alias="participantEffectiveGroupMeasure", serialization_alias="participantEffectiveGroupMeasure") + participant_effective_period: Period | None = Field(None, alias="participantEffectivePeriod", serialization_alias="participantEffectivePeriod") + participant_effective_time_from_start: Duration | None = Field(None, alias="participantEffectiveTimeFromStart", serialization_alias="participantEffectiveTimeFromStart") + participant_effective_timing: Timing | None = Field(None, alias="participantEffectiveTiming", serialization_alias="participantEffectiveTiming") + study_effective_date_time: str | None = Field(None, alias="studyEffectiveDateTime", serialization_alias="studyEffectiveDateTime") + study_effective_description: str | None = Field(None, alias="studyEffectiveDescription", serialization_alias="studyEffectiveDescription") + study_effective_duration: Duration | None = Field(None, alias="studyEffectiveDuration", serialization_alias="studyEffectiveDuration") + study_effective_group_measure: Literal["mean", "median", "mean-of-mean", "mean-of-median", "median-of-mean", "median-of-median"] | None = Field(None, alias="studyEffectiveGroupMeasure", serialization_alias="studyEffectiveGroupMeasure") + study_effective_period: Period | None = Field(None, alias="studyEffectivePeriod", serialization_alias="studyEffectivePeriod") + study_effective_time_from_start: Duration | None = Field(None, alias="studyEffectiveTimeFromStart", serialization_alias="studyEffectiveTimeFromStart") + study_effective_timing: Timing | None = Field(None, alias="studyEffectiveTiming", serialization_alias="studyEffectiveTiming") + unit_of_measure: CodeableConcept | None = Field(None, alias="unitOfMeasure", serialization_alias="unitOfMeasure") + usage_context: PyList[UsageContext] | None = Field(None, alias="usageContext", serialization_alias="usageContext") + + +class ResearchElementDefinition(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ResearchElementDefinition', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ResearchElementDefinition' + ) + approval_date: str | None = Field(None, alias="approvalDate", serialization_alias="approvalDate") + author: PyList[ContactDetail] | None = Field(None, alias="author", serialization_alias="author") + characteristic: PyList[ResearchElementDefinitionCharacteristic] = Field(alias="characteristic", serialization_alias="characteristic") + comment: PyList[str] | None = Field(None, alias="comment", serialization_alias="comment") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + editor: PyList[ContactDetail] | None = Field(None, alias="editor", serialization_alias="editor") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + endorser: PyList[ContactDetail] | None = Field(None, alias="endorser", serialization_alias="endorser") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + last_review_date: str | None = Field(None, alias="lastReviewDate", serialization_alias="lastReviewDate") + library: PyList[str] | None = Field(None, alias="library", serialization_alias="library") + name: str | None = Field(None, alias="name", serialization_alias="name") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + related_artifact: PyList[RelatedArtifact] | None = Field(None, alias="relatedArtifact", serialization_alias="relatedArtifact") + reviewer: PyList[ContactDetail] | None = Field(None, alias="reviewer", serialization_alias="reviewer") + short_title: str | None = Field(None, alias="shortTitle", serialization_alias="shortTitle") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + subject_codeable_concept: CodeableConcept | None = Field(None, alias="subjectCodeableConcept", serialization_alias="subjectCodeableConcept") + subject_reference: Reference | None = Field(None, alias="subjectReference", serialization_alias="subjectReference") + subtitle: str | None = Field(None, alias="subtitle", serialization_alias="subtitle") + title: str | None = Field(None, alias="title", serialization_alias="title") + topic: PyList[CodeableConcept] | None = Field(None, alias="topic", serialization_alias="topic") + type: Literal["population", "exposure", "outcome"] = Field(alias="type", serialization_alias="type") + url: str | None = Field(None, alias="url", serialization_alias="url") + usage: str | None = Field(None, alias="usage", serialization_alias="usage") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + variable_type: Literal["dichotomous", "continuous", "descriptive"] | None = Field(None, alias="variableType", serialization_alias="variableType") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ResearchElementDefinition: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/research_study.py b/examples/python/generated/hl7_fhir_r4_core/research_study.py new file mode 100644 index 000000000..a93a3b4e3 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/research_study.py @@ -0,0 +1,68 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, ContactDetail, Identifier, Period, Reference, RelatedArtifact +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ResearchStudyArm(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + name: str = Field(alias="name", serialization_alias="name") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class ResearchStudyObjective(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + name: str | None = Field(None, alias="name", serialization_alias="name") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + +class ResearchStudy(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ResearchStudy', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ResearchStudy' + ) + arm: PyList[ResearchStudyArm] | None = Field(None, alias="arm", serialization_alias="arm") + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + condition: PyList[CodeableConcept] | None = Field(None, alias="condition", serialization_alias="condition") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + description: str | None = Field(None, alias="description", serialization_alias="description") + enrollment: PyList[Reference] | None = Field(None, alias="enrollment", serialization_alias="enrollment") + focus: PyList[CodeableConcept] | None = Field(None, alias="focus", serialization_alias="focus") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + keyword: PyList[CodeableConcept] | None = Field(None, alias="keyword", serialization_alias="keyword") + location: PyList[CodeableConcept] | None = Field(None, alias="location", serialization_alias="location") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + objective: PyList[ResearchStudyObjective] | None = Field(None, alias="objective", serialization_alias="objective") + part_of: PyList[Reference] | None = Field(None, alias="partOf", serialization_alias="partOf") + period: Period | None = Field(None, alias="period", serialization_alias="period") + phase: CodeableConcept | None = Field(None, alias="phase", serialization_alias="phase") + primary_purpose_type: CodeableConcept | None = Field(None, alias="primaryPurposeType", serialization_alias="primaryPurposeType") + principal_investigator: Reference | None = Field(None, alias="principalInvestigator", serialization_alias="principalInvestigator") + protocol: PyList[Reference] | None = Field(None, alias="protocol", serialization_alias="protocol") + reason_stopped: CodeableConcept | None = Field(None, alias="reasonStopped", serialization_alias="reasonStopped") + related_artifact: PyList[RelatedArtifact] | None = Field(None, alias="relatedArtifact", serialization_alias="relatedArtifact") + site: PyList[Reference] | None = Field(None, alias="site", serialization_alias="site") + sponsor: Reference | None = Field(None, alias="sponsor", serialization_alias="sponsor") + status: Literal["active", "administratively-completed", "approved", "closed-to-accrual", "closed-to-accrual-and-intervention", "completed", "disapproved", "in-review", "temporarily-closed-to-accrual", "temporarily-closed-to-accrual-and-intervention", "withdrawn"] = Field(alias="status", serialization_alias="status") + title: str | None = Field(None, alias="title", serialization_alias="title") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ResearchStudy: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/research_subject.py b/examples/python/generated/hl7_fhir_r4_core/research_subject.py new file mode 100644 index 000000000..426e13074 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/research_subject.py @@ -0,0 +1,38 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import Identifier, Period, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ResearchSubject(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ResearchSubject', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ResearchSubject' + ) + actual_arm: str | None = Field(None, alias="actualArm", serialization_alias="actualArm") + assigned_arm: str | None = Field(None, alias="assignedArm", serialization_alias="assignedArm") + consent: Reference | None = Field(None, alias="consent", serialization_alias="consent") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + individual: Reference = Field(alias="individual", serialization_alias="individual") + period: Period | None = Field(None, alias="period", serialization_alias="period") + status: Literal["candidate", "eligible", "follow-up", "ineligible", "not-registered", "off-study", "on-study", "on-study-intervention", "on-study-observation", "pending-on-study", "potential-candidate", "screening", "withdrawn"] = Field(alias="status", serialization_alias="status") + study: Reference = Field(alias="study", serialization_alias="study") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ResearchSubject: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/resource.py b/examples/python/generated/hl7_fhir_r4_core/resource.py new file mode 100644 index 000000000..8e7be433b --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/resource.py @@ -0,0 +1,32 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import Meta + + +class Resource(BaseModel): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Resource', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Resource' + ) + id: str | None = Field(None, alias="id", serialization_alias="id") + implicit_rules: str | None = Field(None, alias="implicitRules", serialization_alias="implicitRules") + language: str | None = Field(None, alias="language", serialization_alias="language") + meta: Meta | None = Field(None, alias="meta", serialization_alias="meta") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Resource: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/resource_families.py b/examples/python/generated/hl7_fhir_r4_core/resource_families.py new file mode 100644 index 000000000..8bf2467cf --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/resource_families.py @@ -0,0 +1,115 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +import re +import importlib +import importlib.util +from typing import Any, Annotated, List + +from pydantic import BeforeValidator, BaseModel, ValidationError +from pydantic_core import ValidationError as PydanticCoreValidationError + + +def to_snake_case(name: str) -> str: + s = re.sub(r"(? bool: + """Checks if a module exists without importing it""" + return importlib.util.find_spec(name) is not None + + +def import_and_create_module(module_name: str, class_name: str) -> Any: + """ + Dynamically import a module and create an instance of a specified class. + + Args: + module_name: String name of the module (e.g., 'aidbox.hl7_fhir_r4_core.patient') + class_name: String name of the class (e.g., 'Patient') + + Returns: + Instance of the specified class + """ + try: + module = importlib.import_module(module_name) + class_obj = getattr(module, class_name) + return class_obj + + except (ImportError, AttributeError) as e: + raise ImportError(f"Could not import {class_name} from {module_name}: {e}") + + +def import_and_create_module_if_exists(package: str, class_name: str) -> Any: + """ + Dynamically import a module and create an instance of a specified class if the module exists. + + Args: + package: String name of the package (e.g., 'aidbox.hl7_fhir_r4_core') + class_name: String name of the class (e.g., 'Patient') + + Returns: + Instance of the specified class or None if the module does not exist + """ + module_name = package + "." + to_snake_case(class_name) + if module_exists(module_name): + return import_and_create_module(module_name, class_name) + else: + return None + + +def validate_and_downcast( + resource_data: dict[str, Any], package_list: List[str], family: List[str] +) -> Any: + """ + Validates and downcasts ResourceFamily to the appropriate FHIR resource class + + Args: + resource_data: Input value (dict) + package_list: List of package names to search for resource classes (e.g., ['aidbox.hl7_fhir_r4_core', 'aidbox.hl7_fhir_r4_extras']) + family: List of valid resource types (e.g., 'Group' or 'Patient') + + Returns: + Instance of the appropriate FHIR resource class + """ + + # Extract and validate resource type + resource_type = resource_data.get("resourceType") + if not resource_type: + raise ValueError("Missing 'resourceType' field in resource") + + if resource_type not in family: + raise ValueError(f"Invalid resourceType '{resource_type}'. ") + + # Dynamically import and instantiate the appropriate class + target_class = None + for package in package_list: + target_class = import_and_create_module_if_exists(package, resource_type) + if target_class is not None: + break + if target_class is None: + raise ImportError( + f"Could not find class for resourceType '{resource_type}' in packages {package_list}" + ) + + return target_class.model_validate(resource_data) + + +packages = ['generated.hl7_fhir_r4_core'] + +DomainResourceFamily_resources = ['Account', 'ActivityDefinition', 'AdverseEvent', 'AllergyIntolerance', 'Appointment', 'AppointmentResponse', 'AuditEvent', 'Basic', 'BiologicallyDerivedProduct', 'BodyStructure', 'CapabilityStatement', 'CarePlan', 'CareTeam', 'CatalogEntry', 'ChargeItem', 'ChargeItemDefinition', 'Claim', 'ClaimResponse', 'ClinicalImpression', 'CodeSystem', 'Communication', 'CommunicationRequest', 'CompartmentDefinition', 'Composition', 'ConceptMap', 'Condition', 'Consent', 'Contract', 'Coverage', 'CoverageEligibilityRequest', 'CoverageEligibilityResponse', 'DetectedIssue', 'Device', 'DeviceDefinition', 'DeviceMetric', 'DeviceRequest', 'DeviceUseStatement', 'DiagnosticReport', 'DocumentManifest', 'DocumentReference', 'EffectEvidenceSynthesis', 'Encounter', 'Endpoint', 'EnrollmentRequest', 'EnrollmentResponse', 'EpisodeOfCare', 'EventDefinition', 'Evidence', 'EvidenceVariable', 'ExampleScenario', 'ExplanationOfBenefit', 'FamilyMemberHistory', 'Flag', 'Goal', 'GraphDefinition', 'Group', 'GuidanceResponse', 'HealthcareService', 'ImagingStudy', 'Immunization', 'ImmunizationEvaluation', 'ImmunizationRecommendation', 'ImplementationGuide', 'InsurancePlan', 'Invoice', 'Library', 'Linkage', 'List', 'Location', 'Measure', 'MeasureReport', 'Media', 'Medication', 'MedicationAdministration', 'MedicationDispense', 'MedicationKnowledge', 'MedicationRequest', 'MedicationStatement', 'MedicinalProduct', 'MedicinalProductAuthorization', 'MedicinalProductContraindication', 'MedicinalProductIndication', 'MedicinalProductIngredient', 'MedicinalProductInteraction', 'MedicinalProductManufactured', 'MedicinalProductPackaged', 'MedicinalProductPharmaceutical', 'MedicinalProductUndesirableEffect', 'MessageDefinition', 'MessageHeader', 'MolecularSequence', 'NamingSystem', 'NutritionOrder', 'Observation', 'ObservationDefinition', 'OperationDefinition', 'OperationOutcome', 'Organization', 'OrganizationAffiliation', 'Patient', 'PaymentNotice', 'PaymentReconciliation', 'Person', 'PlanDefinition', 'Practitioner', 'PractitionerRole', 'Procedure', 'Provenance', 'Questionnaire', 'QuestionnaireResponse', 'RelatedPerson', 'RequestGroup', 'ResearchDefinition', 'ResearchElementDefinition', 'ResearchStudy', 'ResearchSubject', 'RiskAssessment', 'RiskEvidenceSynthesis', 'Schedule', 'SearchParameter', 'ServiceRequest', 'Slot', 'Specimen', 'SpecimenDefinition', 'StructureDefinition', 'StructureMap', 'Subscription', 'Substance', 'SubstanceNucleicAcid', 'SubstancePolymer', 'SubstanceProtein', 'SubstanceReferenceInformation', 'SubstanceSourceMaterial', 'SubstanceSpecification', 'SupplyDelivery', 'SupplyRequest', 'Task', 'TerminologyCapabilities', 'TestReport', 'TestScript', 'ValueSet', 'VerificationResult', 'VisionPrescription'] + +def validate_and_downcast_DomainResourceFamily(v: Any) -> Any: + return validate_and_downcast(v, packages, DomainResourceFamily_resources) + +type DomainResourceFamily = Annotated[Any, BeforeValidator(validate_and_downcast_DomainResourceFamily)] + +ResourceFamily_resources = ['Binary', 'Bundle', 'DomainResource', 'Parameters', 'Account', 'ActivityDefinition', 'AdverseEvent', 'AllergyIntolerance', 'Appointment', 'AppointmentResponse', 'AuditEvent', 'Basic', 'BiologicallyDerivedProduct', 'BodyStructure', 'CapabilityStatement', 'CarePlan', 'CareTeam', 'CatalogEntry', 'ChargeItem', 'ChargeItemDefinition', 'Claim', 'ClaimResponse', 'ClinicalImpression', 'CodeSystem', 'Communication', 'CommunicationRequest', 'CompartmentDefinition', 'Composition', 'ConceptMap', 'Condition', 'Consent', 'Contract', 'Coverage', 'CoverageEligibilityRequest', 'CoverageEligibilityResponse', 'DetectedIssue', 'Device', 'DeviceDefinition', 'DeviceMetric', 'DeviceRequest', 'DeviceUseStatement', 'DiagnosticReport', 'DocumentManifest', 'DocumentReference', 'EffectEvidenceSynthesis', 'Encounter', 'Endpoint', 'EnrollmentRequest', 'EnrollmentResponse', 'EpisodeOfCare', 'EventDefinition', 'Evidence', 'EvidenceVariable', 'ExampleScenario', 'ExplanationOfBenefit', 'FamilyMemberHistory', 'Flag', 'Goal', 'GraphDefinition', 'Group', 'GuidanceResponse', 'HealthcareService', 'ImagingStudy', 'Immunization', 'ImmunizationEvaluation', 'ImmunizationRecommendation', 'ImplementationGuide', 'InsurancePlan', 'Invoice', 'Library', 'Linkage', 'List', 'Location', 'Measure', 'MeasureReport', 'Media', 'Medication', 'MedicationAdministration', 'MedicationDispense', 'MedicationKnowledge', 'MedicationRequest', 'MedicationStatement', 'MedicinalProduct', 'MedicinalProductAuthorization', 'MedicinalProductContraindication', 'MedicinalProductIndication', 'MedicinalProductIngredient', 'MedicinalProductInteraction', 'MedicinalProductManufactured', 'MedicinalProductPackaged', 'MedicinalProductPharmaceutical', 'MedicinalProductUndesirableEffect', 'MessageDefinition', 'MessageHeader', 'MolecularSequence', 'NamingSystem', 'NutritionOrder', 'Observation', 'ObservationDefinition', 'OperationDefinition', 'OperationOutcome', 'Organization', 'OrganizationAffiliation', 'Patient', 'PaymentNotice', 'PaymentReconciliation', 'Person', 'PlanDefinition', 'Practitioner', 'PractitionerRole', 'Procedure', 'Provenance', 'Questionnaire', 'QuestionnaireResponse', 'RelatedPerson', 'RequestGroup', 'ResearchDefinition', 'ResearchElementDefinition', 'ResearchStudy', 'ResearchSubject', 'RiskAssessment', 'RiskEvidenceSynthesis', 'Schedule', 'SearchParameter', 'ServiceRequest', 'Slot', 'Specimen', 'SpecimenDefinition', 'StructureDefinition', 'StructureMap', 'Subscription', 'Substance', 'SubstanceNucleicAcid', 'SubstancePolymer', 'SubstanceProtein', 'SubstanceReferenceInformation', 'SubstanceSourceMaterial', 'SubstanceSpecification', 'SupplyDelivery', 'SupplyRequest', 'Task', 'TerminologyCapabilities', 'TestReport', 'TestScript', 'ValueSet', 'VerificationResult', 'VisionPrescription'] + +def validate_and_downcast_ResourceFamily(v: Any) -> Any: + return validate_and_downcast(v, packages, ResourceFamily_resources) + +type ResourceFamily = Annotated[Any, BeforeValidator(validate_and_downcast_ResourceFamily)] + +__all__ = ['DomainResourceFamily', 'ResourceFamily'] diff --git a/examples/python/generated/hl7_fhir_r4_core/risk_assessment.py b/examples/python/generated/hl7_fhir_r4_core/risk_assessment.py new file mode 100644 index 000000000..dfd7601b8 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/risk_assessment.py @@ -0,0 +1,62 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Identifier, Period, Range, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class RiskAssessmentPrediction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + outcome: CodeableConcept | None = Field(None, alias="outcome", serialization_alias="outcome") + probability_decimal: float | None = Field(None, alias="probabilityDecimal", serialization_alias="probabilityDecimal") + probability_range: Range | None = Field(None, alias="probabilityRange", serialization_alias="probabilityRange") + qualitative_risk: CodeableConcept | None = Field(None, alias="qualitativeRisk", serialization_alias="qualitativeRisk") + rationale: str | None = Field(None, alias="rationale", serialization_alias="rationale") + relative_risk: float | None = Field(None, alias="relativeRisk", serialization_alias="relativeRisk") + when_period: Period | None = Field(None, alias="whenPeriod", serialization_alias="whenPeriod") + when_range: Range | None = Field(None, alias="whenRange", serialization_alias="whenRange") + + +class RiskAssessment(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='RiskAssessment', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='RiskAssessment' + ) + based_on: Reference | None = Field(None, alias="basedOn", serialization_alias="basedOn") + basis: PyList[Reference] | None = Field(None, alias="basis", serialization_alias="basis") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + condition: Reference | None = Field(None, alias="condition", serialization_alias="condition") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + method: CodeableConcept | None = Field(None, alias="method", serialization_alias="method") + mitigation: str | None = Field(None, alias="mitigation", serialization_alias="mitigation") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + occurrence_date_time: str | None = Field(None, alias="occurrenceDateTime", serialization_alias="occurrenceDateTime") + occurrence_period: Period | None = Field(None, alias="occurrencePeriod", serialization_alias="occurrencePeriod") + parent: Reference | None = Field(None, alias="parent", serialization_alias="parent") + performer: Reference | None = Field(None, alias="performer", serialization_alias="performer") + prediction: PyList[RiskAssessmentPrediction] | None = Field(None, alias="prediction", serialization_alias="prediction") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + status: Literal["registered", "preliminary", "final", "amended", "corrected", "cancelled", "entered-in-error", "unknown"] = Field(alias="status", serialization_alias="status") + subject: Reference = Field(alias="subject", serialization_alias="subject") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> RiskAssessment: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/risk_evidence_synthesis.py b/examples/python/generated/hl7_fhir_r4_core/risk_evidence_synthesis.py new file mode 100644 index 000000000..00118d0d3 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/risk_evidence_synthesis.py @@ -0,0 +1,100 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, ContactDetail, Identifier, Period, Reference, RelatedArtifact, \ + UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class RiskEvidenceSynthesisCertainty(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + certainty_subcomponent: PyList[RiskEvidenceSynthesisCertaintyCertaintySubcomponent] | None = Field(None, alias="certaintySubcomponent", serialization_alias="certaintySubcomponent") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + rating: PyList[CodeableConcept] | None = Field(None, alias="rating", serialization_alias="rating") + +class RiskEvidenceSynthesisCertaintyCertaintySubcomponent(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + rating: PyList[CodeableConcept] | None = Field(None, alias="rating", serialization_alias="rating") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class RiskEvidenceSynthesisRiskEstimate(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + denominator_count: int | None = Field(None, alias="denominatorCount", serialization_alias="denominatorCount") + description: str | None = Field(None, alias="description", serialization_alias="description") + numerator_count: int | None = Field(None, alias="numeratorCount", serialization_alias="numeratorCount") + precision_estimate: PyList[RiskEvidenceSynthesisRiskEstimatePrecisionEstimate] | None = Field(None, alias="precisionEstimate", serialization_alias="precisionEstimate") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + unit_of_measure: CodeableConcept | None = Field(None, alias="unitOfMeasure", serialization_alias="unitOfMeasure") + value: float | None = Field(None, alias="value", serialization_alias="value") + +class RiskEvidenceSynthesisRiskEstimatePrecisionEstimate(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + from_: float | None = Field(None, alias="from", serialization_alias="from") + level: float | None = Field(None, alias="level", serialization_alias="level") + to: float | None = Field(None, alias="to", serialization_alias="to") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class RiskEvidenceSynthesisSampleSize(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + number_of_participants: int | None = Field(None, alias="numberOfParticipants", serialization_alias="numberOfParticipants") + number_of_studies: int | None = Field(None, alias="numberOfStudies", serialization_alias="numberOfStudies") + + +class RiskEvidenceSynthesis(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='RiskEvidenceSynthesis', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='RiskEvidenceSynthesis' + ) + approval_date: str | None = Field(None, alias="approvalDate", serialization_alias="approvalDate") + author: PyList[ContactDetail] | None = Field(None, alias="author", serialization_alias="author") + certainty: PyList[RiskEvidenceSynthesisCertainty] | None = Field(None, alias="certainty", serialization_alias="certainty") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + editor: PyList[ContactDetail] | None = Field(None, alias="editor", serialization_alias="editor") + effective_period: Period | None = Field(None, alias="effectivePeriod", serialization_alias="effectivePeriod") + endorser: PyList[ContactDetail] | None = Field(None, alias="endorser", serialization_alias="endorser") + exposure: Reference | None = Field(None, alias="exposure", serialization_alias="exposure") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + last_review_date: str | None = Field(None, alias="lastReviewDate", serialization_alias="lastReviewDate") + name: str | None = Field(None, alias="name", serialization_alias="name") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + outcome: Reference = Field(alias="outcome", serialization_alias="outcome") + population: Reference = Field(alias="population", serialization_alias="population") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + related_artifact: PyList[RelatedArtifact] | None = Field(None, alias="relatedArtifact", serialization_alias="relatedArtifact") + reviewer: PyList[ContactDetail] | None = Field(None, alias="reviewer", serialization_alias="reviewer") + risk_estimate: RiskEvidenceSynthesisRiskEstimate | None = Field(None, alias="riskEstimate", serialization_alias="riskEstimate") + sample_size: RiskEvidenceSynthesisSampleSize | None = Field(None, alias="sampleSize", serialization_alias="sampleSize") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + study_type: CodeableConcept | None = Field(None, alias="studyType", serialization_alias="studyType") + synthesis_type: CodeableConcept | None = Field(None, alias="synthesisType", serialization_alias="synthesisType") + title: str | None = Field(None, alias="title", serialization_alias="title") + topic: PyList[CodeableConcept] | None = Field(None, alias="topic", serialization_alias="topic") + url: str | None = Field(None, alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> RiskEvidenceSynthesis: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/schedule.py b/examples/python/generated/hl7_fhir_r4_core/schedule.py new file mode 100644 index 000000000..64c9bf731 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/schedule.py @@ -0,0 +1,38 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import CodeableConcept, Identifier, Period, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class Schedule(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Schedule', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Schedule' + ) + active: bool | None = Field(None, alias="active", serialization_alias="active") + actor: PyList[Reference] = Field(alias="actor", serialization_alias="actor") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + planning_horizon: Period | None = Field(None, alias="planningHorizon", serialization_alias="planningHorizon") + service_category: PyList[CodeableConcept] | None = Field(None, alias="serviceCategory", serialization_alias="serviceCategory") + service_type: PyList[CodeableConcept] | None = Field(None, alias="serviceType", serialization_alias="serviceType") + specialty: PyList[CodeableConcept] | None = Field(None, alias="specialty", serialization_alias="specialty") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Schedule: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/search_parameter.py b/examples/python/generated/hl7_fhir_r4_core/search_parameter.py new file mode 100644 index 000000000..62e308cea --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/search_parameter.py @@ -0,0 +1,64 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, ContactDetail, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class SearchParameterComponent(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + definition: str = Field(alias="definition", serialization_alias="definition") + expression: str = Field(alias="expression", serialization_alias="expression") + + +class SearchParameter(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='SearchParameter', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='SearchParameter' + ) + base: PyList[str] = Field(alias="base", serialization_alias="base") + chain: PyList[str] | None = Field(None, alias="chain", serialization_alias="chain") + code: str = Field(alias="code", serialization_alias="code") + comparator: PyList[Literal["eq", "ne", "gt", "lt", "ge", "le", "sa", "eb", "ap"]] | None = Field(None, alias="comparator", serialization_alias="comparator") + component: PyList[SearchParameterComponent] | None = Field(None, alias="component", serialization_alias="component") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + date: str | None = Field(None, alias="date", serialization_alias="date") + derived_from: str | None = Field(None, alias="derivedFrom", serialization_alias="derivedFrom") + description: str = Field(alias="description", serialization_alias="description") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + expression: str | None = Field(None, alias="expression", serialization_alias="expression") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + modifier: PyList[Literal["missing", "exact", "contains", "not", "text", "in", "not-in", "below", "above", "type", "identifier", "ofType"]] | None = Field(None, alias="modifier", serialization_alias="modifier") + multiple_and: bool | None = Field(None, alias="multipleAnd", serialization_alias="multipleAnd") + multiple_or: bool | None = Field(None, alias="multipleOr", serialization_alias="multipleOr") + name: str = Field(alias="name", serialization_alias="name") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + target: PyList[str] | None = Field(None, alias="target", serialization_alias="target") + type: Literal["number", "date", "string", "token", "reference", "composite", "quantity", "uri", "special"] = Field(alias="type", serialization_alias="type") + url: str = Field(alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + xpath: str | None = Field(None, alias="xpath", serialization_alias="xpath") + xpath_usage: Literal["normal", "phonetic", "nearby", "distance", "other"] | None = Field(None, alias="xpathUsage", serialization_alias="xpathUsage") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> SearchParameter: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/service_request.py b/examples/python/generated/hl7_fhir_r4_core/service_request.py new file mode 100644 index 000000000..d1c70dc5c --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/service_request.py @@ -0,0 +1,70 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, CodeableConcept, Identifier, Period, Quantity, Range, Ratio, Reference, Timing +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ServiceRequest(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ServiceRequest', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ServiceRequest' + ) + as_needed_boolean: bool | None = Field(None, alias="asNeededBoolean", serialization_alias="asNeededBoolean") + as_needed_codeable_concept: CodeableConcept | None = Field(None, alias="asNeededCodeableConcept", serialization_alias="asNeededCodeableConcept") + authored_on: str | None = Field(None, alias="authoredOn", serialization_alias="authoredOn") + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + body_site: PyList[CodeableConcept] | None = Field(None, alias="bodySite", serialization_alias="bodySite") + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + do_not_perform: bool | None = Field(None, alias="doNotPerform", serialization_alias="doNotPerform") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + instantiates_canonical: PyList[str] | None = Field(None, alias="instantiatesCanonical", serialization_alias="instantiatesCanonical") + instantiates_uri: PyList[str] | None = Field(None, alias="instantiatesUri", serialization_alias="instantiatesUri") + insurance: PyList[Reference] | None = Field(None, alias="insurance", serialization_alias="insurance") + intent: Literal["proposal", "plan", "directive", "order", "original-order", "reflex-order", "filler-order", "instance-order", "option"] = Field(alias="intent", serialization_alias="intent") + location_code: PyList[CodeableConcept] | None = Field(None, alias="locationCode", serialization_alias="locationCode") + location_reference: PyList[Reference] | None = Field(None, alias="locationReference", serialization_alias="locationReference") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + occurrence_date_time: str | None = Field(None, alias="occurrenceDateTime", serialization_alias="occurrenceDateTime") + occurrence_period: Period | None = Field(None, alias="occurrencePeriod", serialization_alias="occurrencePeriod") + occurrence_timing: Timing | None = Field(None, alias="occurrenceTiming", serialization_alias="occurrenceTiming") + order_detail: PyList[CodeableConcept] | None = Field(None, alias="orderDetail", serialization_alias="orderDetail") + patient_instruction: str | None = Field(None, alias="patientInstruction", serialization_alias="patientInstruction") + performer: PyList[Reference] | None = Field(None, alias="performer", serialization_alias="performer") + performer_type: CodeableConcept | None = Field(None, alias="performerType", serialization_alias="performerType") + priority: Literal["routine", "urgent", "asap", "stat"] | None = Field(None, alias="priority", serialization_alias="priority") + quantity_quantity: Quantity | None = Field(None, alias="quantityQuantity", serialization_alias="quantityQuantity") + quantity_range: Range | None = Field(None, alias="quantityRange", serialization_alias="quantityRange") + quantity_ratio: Ratio | None = Field(None, alias="quantityRatio", serialization_alias="quantityRatio") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + relevant_history: PyList[Reference] | None = Field(None, alias="relevantHistory", serialization_alias="relevantHistory") + replaces: PyList[Reference] | None = Field(None, alias="replaces", serialization_alias="replaces") + requester: Reference | None = Field(None, alias="requester", serialization_alias="requester") + requisition: Identifier | None = Field(None, alias="requisition", serialization_alias="requisition") + specimen: PyList[Reference] | None = Field(None, alias="specimen", serialization_alias="specimen") + status: Literal["draft", "active", "on-hold", "revoked", "completed", "entered-in-error", "unknown"] = Field(alias="status", serialization_alias="status") + subject: Reference = Field(alias="subject", serialization_alias="subject") + supporting_info: PyList[Reference] | None = Field(None, alias="supportingInfo", serialization_alias="supportingInfo") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ServiceRequest: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/slot.py b/examples/python/generated/hl7_fhir_r4_core/slot.py new file mode 100644 index 000000000..531fdfc33 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/slot.py @@ -0,0 +1,41 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import CodeableConcept, Identifier, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class Slot(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Slot', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Slot' + ) + appointment_type: CodeableConcept | None = Field(None, alias="appointmentType", serialization_alias="appointmentType") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + end: str = Field(alias="end", serialization_alias="end") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + overbooked: bool | None = Field(None, alias="overbooked", serialization_alias="overbooked") + schedule: Reference = Field(alias="schedule", serialization_alias="schedule") + service_category: PyList[CodeableConcept] | None = Field(None, alias="serviceCategory", serialization_alias="serviceCategory") + service_type: PyList[CodeableConcept] | None = Field(None, alias="serviceType", serialization_alias="serviceType") + specialty: PyList[CodeableConcept] | None = Field(None, alias="specialty", serialization_alias="specialty") + start: str = Field(alias="start", serialization_alias="start") + status: Literal["busy", "free", "busy-unavailable", "busy-tentative", "entered-in-error"] = Field(alias="status", serialization_alias="status") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Slot: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/specimen.py b/examples/python/generated/hl7_fhir_r4_core/specimen.py new file mode 100644 index 000000000..fff3f0466 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/specimen.py @@ -0,0 +1,76 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Duration, Identifier, Period, Quantity, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class SpecimenCollection(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + body_site: CodeableConcept | None = Field(None, alias="bodySite", serialization_alias="bodySite") + collected_date_time: str | None = Field(None, alias="collectedDateTime", serialization_alias="collectedDateTime") + collected_period: Period | None = Field(None, alias="collectedPeriod", serialization_alias="collectedPeriod") + collector: Reference | None = Field(None, alias="collector", serialization_alias="collector") + duration: Duration | None = Field(None, alias="duration", serialization_alias="duration") + fasting_status_codeable_concept: CodeableConcept | None = Field(None, alias="fastingStatusCodeableConcept", serialization_alias="fastingStatusCodeableConcept") + fasting_status_duration: Duration | None = Field(None, alias="fastingStatusDuration", serialization_alias="fastingStatusDuration") + method: CodeableConcept | None = Field(None, alias="method", serialization_alias="method") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + +class SpecimenContainer(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + additive_codeable_concept: CodeableConcept | None = Field(None, alias="additiveCodeableConcept", serialization_alias="additiveCodeableConcept") + additive_reference: Reference | None = Field(None, alias="additiveReference", serialization_alias="additiveReference") + capacity: Quantity | None = Field(None, alias="capacity", serialization_alias="capacity") + description: str | None = Field(None, alias="description", serialization_alias="description") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + specimen_quantity: Quantity | None = Field(None, alias="specimenQuantity", serialization_alias="specimenQuantity") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class SpecimenProcessing(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + additive: PyList[Reference] | None = Field(None, alias="additive", serialization_alias="additive") + description: str | None = Field(None, alias="description", serialization_alias="description") + procedure: CodeableConcept | None = Field(None, alias="procedure", serialization_alias="procedure") + time_date_time: str | None = Field(None, alias="timeDateTime", serialization_alias="timeDateTime") + time_period: Period | None = Field(None, alias="timePeriod", serialization_alias="timePeriod") + + +class Specimen(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Specimen', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Specimen' + ) + accession_identifier: Identifier | None = Field(None, alias="accessionIdentifier", serialization_alias="accessionIdentifier") + collection: SpecimenCollection | None = Field(None, alias="collection", serialization_alias="collection") + condition: PyList[CodeableConcept] | None = Field(None, alias="condition", serialization_alias="condition") + container: PyList[SpecimenContainer] | None = Field(None, alias="container", serialization_alias="container") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + parent: PyList[Reference] | None = Field(None, alias="parent", serialization_alias="parent") + processing: PyList[SpecimenProcessing] | None = Field(None, alias="processing", serialization_alias="processing") + received_time: str | None = Field(None, alias="receivedTime", serialization_alias="receivedTime") + request: PyList[Reference] | None = Field(None, alias="request", serialization_alias="request") + status: Literal["available", "unavailable", "unsatisfactory", "entered-in-error"] | None = Field(None, alias="status", serialization_alias="status") + subject: Reference | None = Field(None, alias="subject", serialization_alias="subject") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Specimen: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/specimen_definition.py b/examples/python/generated/hl7_fhir_r4_core/specimen_definition.py new file mode 100644 index 000000000..0064583b2 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/specimen_definition.py @@ -0,0 +1,74 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Duration, Identifier, Quantity, Range, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class SpecimenDefinitionTypeTested(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + container: SpecimenDefinitionTypeTestedContainer | None = Field(None, alias="container", serialization_alias="container") + handling: PyList[SpecimenDefinitionTypeTestedHandling] | None = Field(None, alias="handling", serialization_alias="handling") + is_derived: bool | None = Field(None, alias="isDerived", serialization_alias="isDerived") + preference: Literal["preferred", "alternate"] = Field(alias="preference", serialization_alias="preference") + rejection_criterion: PyList[CodeableConcept] | None = Field(None, alias="rejectionCriterion", serialization_alias="rejectionCriterion") + requirement: str | None = Field(None, alias="requirement", serialization_alias="requirement") + retention_time: Duration | None = Field(None, alias="retentionTime", serialization_alias="retentionTime") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class SpecimenDefinitionTypeTestedContainer(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + additive: PyList[SpecimenDefinitionTypeTestedContainerAdditive] | None = Field(None, alias="additive", serialization_alias="additive") + cap: CodeableConcept | None = Field(None, alias="cap", serialization_alias="cap") + capacity: Quantity | None = Field(None, alias="capacity", serialization_alias="capacity") + description: str | None = Field(None, alias="description", serialization_alias="description") + material: CodeableConcept | None = Field(None, alias="material", serialization_alias="material") + minimum_volume_quantity: Quantity | None = Field(None, alias="minimumVolumeQuantity", serialization_alias="minimumVolumeQuantity") + minimum_volume_string: str | None = Field(None, alias="minimumVolumeString", serialization_alias="minimumVolumeString") + preparation: str | None = Field(None, alias="preparation", serialization_alias="preparation") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class SpecimenDefinitionTypeTestedContainerAdditive(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + additive_codeable_concept: CodeableConcept | None = Field(None, alias="additiveCodeableConcept", serialization_alias="additiveCodeableConcept") + additive_reference: Reference | None = Field(None, alias="additiveReference", serialization_alias="additiveReference") + +class SpecimenDefinitionTypeTestedHandling(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + instruction: str | None = Field(None, alias="instruction", serialization_alias="instruction") + max_duration: Duration | None = Field(None, alias="maxDuration", serialization_alias="maxDuration") + temperature_qualifier: CodeableConcept | None = Field(None, alias="temperatureQualifier", serialization_alias="temperatureQualifier") + temperature_range: Range | None = Field(None, alias="temperatureRange", serialization_alias="temperatureRange") + + +class SpecimenDefinition(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='SpecimenDefinition', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='SpecimenDefinition' + ) + collection: PyList[CodeableConcept] | None = Field(None, alias="collection", serialization_alias="collection") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + patient_preparation: PyList[CodeableConcept] | None = Field(None, alias="patientPreparation", serialization_alias="patientPreparation") + time_aspect: str | None = Field(None, alias="timeAspect", serialization_alias="timeAspect") + type_collected: CodeableConcept | None = Field(None, alias="typeCollected", serialization_alias="typeCollected") + type_tested: PyList[SpecimenDefinitionTypeTested] | None = Field(None, alias="typeTested", serialization_alias="typeTested") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> SpecimenDefinition: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/structure_definition.py b/examples/python/generated/hl7_fhir_r4_core/structure_definition.py new file mode 100644 index 000000000..65e0850ee --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/structure_definition.py @@ -0,0 +1,80 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Coding, ContactDetail, ElementDefinition, Identifier, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class StructureDefinitionContext(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + expression: str = Field(alias="expression", serialization_alias="expression") + type: Literal["fhirpath", "element", "extension"] = Field(alias="type", serialization_alias="type") + +class StructureDefinitionDifferential(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + element: PyList[ElementDefinition] = Field(alias="element", serialization_alias="element") + +class StructureDefinitionMapping(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + identity: str = Field(alias="identity", serialization_alias="identity") + name: str | None = Field(None, alias="name", serialization_alias="name") + uri: str | None = Field(None, alias="uri", serialization_alias="uri") + +class StructureDefinitionSnapshot(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + element: PyList[ElementDefinition] = Field(alias="element", serialization_alias="element") + + +class StructureDefinition(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='StructureDefinition', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='StructureDefinition' + ) + abstract: bool = Field(alias="abstract", serialization_alias="abstract") + base_definition: str | None = Field(None, alias="baseDefinition", serialization_alias="baseDefinition") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + context: PyList[StructureDefinitionContext] | None = Field(None, alias="context", serialization_alias="context") + context_invariant: PyList[str] | None = Field(None, alias="contextInvariant", serialization_alias="contextInvariant") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + derivation: Literal["specialization", "constraint"] | None = Field(None, alias="derivation", serialization_alias="derivation") + description: str | None = Field(None, alias="description", serialization_alias="description") + differential: StructureDefinitionDifferential | None = Field(None, alias="differential", serialization_alias="differential") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + fhir_version: Literal["0.01", "0.05", "0.06", "0.11", "0.0.80", "0.0.81", "0.0.82", "0.4.0", "0.5.0", "1.0.0", "1.0.1", "1.0.2", "1.1.0", "1.4.0", "1.6.0", "1.8.0", "3.0.0", "3.0.1", "3.3.0", "3.5.0", "4.0.0", "4.0.1"] | None = Field(None, alias="fhirVersion", serialization_alias="fhirVersion") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + keyword: PyList[Coding] | None = Field(None, alias="keyword", serialization_alias="keyword") + kind: Literal["primitive-type", "complex-type", "resource", "logical"] = Field(alias="kind", serialization_alias="kind") + mapping: PyList[StructureDefinitionMapping] | None = Field(None, alias="mapping", serialization_alias="mapping") + name: str = Field(alias="name", serialization_alias="name") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + snapshot: StructureDefinitionSnapshot | None = Field(None, alias="snapshot", serialization_alias="snapshot") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + title: str | None = Field(None, alias="title", serialization_alias="title") + type: str = Field(alias="type", serialization_alias="type") + url: str = Field(alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> StructureDefinition: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/structure_map.py b/examples/python/generated/hl7_fhir_r4_core/structure_map.py new file mode 100644 index 000000000..45707e22a --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/structure_map.py @@ -0,0 +1,173 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Address, Age, Annotation, Attachment, BackboneElement, CodeableConcept, Coding, ContactDetail, ContactPoint, \ + Contributor, Count, DataRequirement, Distance, Dosage, Duration, Expression, HumanName, Identifier, Meta, \ + Money, ParameterDefinition, Period, Quantity, Range, Ratio, Reference, RelatedArtifact, SampledData, Signature, \ + Timing, TriggerDefinition, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class StructureMapGroup(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + documentation: str | None = Field(None, alias="documentation", serialization_alias="documentation") + extends: str | None = Field(None, alias="extends", serialization_alias="extends") + input: PyList[StructureMapGroupInput] = Field(alias="input", serialization_alias="input") + name: str = Field(alias="name", serialization_alias="name") + rule: PyList[StructureMapGroupRule] = Field(alias="rule", serialization_alias="rule") + type_mode: Literal["none", "types", "type-and-types"] = Field(alias="typeMode", serialization_alias="typeMode") + +class StructureMapGroupInput(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + documentation: str | None = Field(None, alias="documentation", serialization_alias="documentation") + mode: Literal["source", "target"] = Field(alias="mode", serialization_alias="mode") + name: str = Field(alias="name", serialization_alias="name") + type: str | None = Field(None, alias="type", serialization_alias="type") + +class StructureMapGroupRule(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + dependent: PyList[StructureMapGroupRuleDependent] | None = Field(None, alias="dependent", serialization_alias="dependent") + documentation: str | None = Field(None, alias="documentation", serialization_alias="documentation") + name: str = Field(alias="name", serialization_alias="name") + rule: PyList[StructureMapGroupRule] | None = Field(None, alias="rule", serialization_alias="rule") + source: PyList[StructureMapGroupRuleSource] = Field(alias="source", serialization_alias="source") + target: PyList[StructureMapGroupRuleTarget] | None = Field(None, alias="target", serialization_alias="target") + +class StructureMapGroupRuleDependent(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + name: str = Field(alias="name", serialization_alias="name") + variable: PyList[str] = Field(alias="variable", serialization_alias="variable") + +class StructureMapGroupRuleSource(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + check: str | None = Field(None, alias="check", serialization_alias="check") + condition: str | None = Field(None, alias="condition", serialization_alias="condition") + context: str = Field(alias="context", serialization_alias="context") + default_value_address: Address | None = Field(None, alias="defaultValueAddress", serialization_alias="defaultValueAddress") + default_value_age: Age | None = Field(None, alias="defaultValueAge", serialization_alias="defaultValueAge") + default_value_annotation: Annotation | None = Field(None, alias="defaultValueAnnotation", serialization_alias="defaultValueAnnotation") + default_value_attachment: Attachment | None = Field(None, alias="defaultValueAttachment", serialization_alias="defaultValueAttachment") + default_value_base64binary: str | None = Field(None, alias="defaultValueBase64Binary", serialization_alias="defaultValueBase64Binary") + default_value_boolean: bool | None = Field(None, alias="defaultValueBoolean", serialization_alias="defaultValueBoolean") + default_value_canonical: str | None = Field(None, alias="defaultValueCanonical", serialization_alias="defaultValueCanonical") + default_value_code: str | None = Field(None, alias="defaultValueCode", serialization_alias="defaultValueCode") + default_value_codeable_concept: CodeableConcept | None = Field(None, alias="defaultValueCodeableConcept", serialization_alias="defaultValueCodeableConcept") + default_value_coding: Coding | None = Field(None, alias="defaultValueCoding", serialization_alias="defaultValueCoding") + default_value_contact_detail: ContactDetail | None = Field(None, alias="defaultValueContactDetail", serialization_alias="defaultValueContactDetail") + default_value_contact_point: ContactPoint | None = Field(None, alias="defaultValueContactPoint", serialization_alias="defaultValueContactPoint") + default_value_contributor: Contributor | None = Field(None, alias="defaultValueContributor", serialization_alias="defaultValueContributor") + default_value_count: Count | None = Field(None, alias="defaultValueCount", serialization_alias="defaultValueCount") + default_value_data_requirement: DataRequirement | None = Field(None, alias="defaultValueDataRequirement", serialization_alias="defaultValueDataRequirement") + default_value_date: str | None = Field(None, alias="defaultValueDate", serialization_alias="defaultValueDate") + default_value_date_time: str | None = Field(None, alias="defaultValueDateTime", serialization_alias="defaultValueDateTime") + default_value_decimal: float | None = Field(None, alias="defaultValueDecimal", serialization_alias="defaultValueDecimal") + default_value_distance: Distance | None = Field(None, alias="defaultValueDistance", serialization_alias="defaultValueDistance") + default_value_dosage: Dosage | None = Field(None, alias="defaultValueDosage", serialization_alias="defaultValueDosage") + default_value_duration: Duration | None = Field(None, alias="defaultValueDuration", serialization_alias="defaultValueDuration") + default_value_expression: Expression | None = Field(None, alias="defaultValueExpression", serialization_alias="defaultValueExpression") + default_value_human_name: HumanName | None = Field(None, alias="defaultValueHumanName", serialization_alias="defaultValueHumanName") + default_value_id: str | None = Field(None, alias="defaultValueId", serialization_alias="defaultValueId") + default_value_identifier: Identifier | None = Field(None, alias="defaultValueIdentifier", serialization_alias="defaultValueIdentifier") + default_value_instant: str | None = Field(None, alias="defaultValueInstant", serialization_alias="defaultValueInstant") + default_value_integer: int | None = Field(None, alias="defaultValueInteger", serialization_alias="defaultValueInteger") + default_value_markdown: str | None = Field(None, alias="defaultValueMarkdown", serialization_alias="defaultValueMarkdown") + default_value_meta: Meta | None = Field(None, alias="defaultValueMeta", serialization_alias="defaultValueMeta") + default_value_money: Money | None = Field(None, alias="defaultValueMoney", serialization_alias="defaultValueMoney") + default_value_oid: str | None = Field(None, alias="defaultValueOid", serialization_alias="defaultValueOid") + default_value_parameter_definition: ParameterDefinition | None = Field(None, alias="defaultValueParameterDefinition", serialization_alias="defaultValueParameterDefinition") + default_value_period: Period | None = Field(None, alias="defaultValuePeriod", serialization_alias="defaultValuePeriod") + default_value_positive_int: PositiveInt | None = Field(None, alias="defaultValuePositiveInt", serialization_alias="defaultValuePositiveInt") + default_value_quantity: Quantity | None = Field(None, alias="defaultValueQuantity", serialization_alias="defaultValueQuantity") + default_value_range: Range | None = Field(None, alias="defaultValueRange", serialization_alias="defaultValueRange") + default_value_ratio: Ratio | None = Field(None, alias="defaultValueRatio", serialization_alias="defaultValueRatio") + default_value_reference: Reference | None = Field(None, alias="defaultValueReference", serialization_alias="defaultValueReference") + default_value_related_artifact: RelatedArtifact | None = Field(None, alias="defaultValueRelatedArtifact", serialization_alias="defaultValueRelatedArtifact") + default_value_sampled_data: SampledData | None = Field(None, alias="defaultValueSampledData", serialization_alias="defaultValueSampledData") + default_value_signature: Signature | None = Field(None, alias="defaultValueSignature", serialization_alias="defaultValueSignature") + default_value_string: str | None = Field(None, alias="defaultValueString", serialization_alias="defaultValueString") + default_value_time: str | None = Field(None, alias="defaultValueTime", serialization_alias="defaultValueTime") + default_value_timing: Timing | None = Field(None, alias="defaultValueTiming", serialization_alias="defaultValueTiming") + default_value_trigger_definition: TriggerDefinition | None = Field(None, alias="defaultValueTriggerDefinition", serialization_alias="defaultValueTriggerDefinition") + default_value_unsigned_int: int | None = Field(None, alias="defaultValueUnsignedInt", serialization_alias="defaultValueUnsignedInt") + default_value_uri: str | None = Field(None, alias="defaultValueUri", serialization_alias="defaultValueUri") + default_value_url: str | None = Field(None, alias="defaultValueUrl", serialization_alias="defaultValueUrl") + default_value_usage_context: UsageContext | None = Field(None, alias="defaultValueUsageContext", serialization_alias="defaultValueUsageContext") + default_value_uuid: str | None = Field(None, alias="defaultValueUuid", serialization_alias="defaultValueUuid") + element: str | None = Field(None, alias="element", serialization_alias="element") + list_mode: Literal["first", "not_first", "last", "not_last", "only_one"] | None = Field(None, alias="listMode", serialization_alias="listMode") + log_message: str | None = Field(None, alias="logMessage", serialization_alias="logMessage") + max: str | None = Field(None, alias="max", serialization_alias="max") + min: int | None = Field(None, alias="min", serialization_alias="min") + type: str | None = Field(None, alias="type", serialization_alias="type") + variable: str | None = Field(None, alias="variable", serialization_alias="variable") + +class StructureMapGroupRuleTarget(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + context: str | None = Field(None, alias="context", serialization_alias="context") + context_type: Literal["type", "variable"] | None = Field(None, alias="contextType", serialization_alias="contextType") + element: str | None = Field(None, alias="element", serialization_alias="element") + list_mode: PyList[Literal["first", "share", "last", "collate"]] | None = Field(None, alias="listMode", serialization_alias="listMode") + list_rule_id: str | None = Field(None, alias="listRuleId", serialization_alias="listRuleId") + parameter: PyList[StructureMapGroupRuleTargetParameter] | None = Field(None, alias="parameter", serialization_alias="parameter") + transform: Literal["create", "copy", "truncate", "escape", "cast", "append", "translate", "reference", "dateOp", "uuid", "pointer", "evaluate", "cc", "c", "qty", "id", "cp"] | None = Field(None, alias="transform", serialization_alias="transform") + variable: str | None = Field(None, alias="variable", serialization_alias="variable") + +class StructureMapGroupRuleTargetParameter(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_decimal: float | None = Field(None, alias="valueDecimal", serialization_alias="valueDecimal") + value_id: str | None = Field(None, alias="valueId", serialization_alias="valueId") + value_integer: int | None = Field(None, alias="valueInteger", serialization_alias="valueInteger") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + +class StructureMapStructure(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + alias: str | None = Field(None, alias="alias", serialization_alias="alias") + documentation: str | None = Field(None, alias="documentation", serialization_alias="documentation") + mode: Literal["source", "queried", "target", "produced"] = Field(alias="mode", serialization_alias="mode") + url: str = Field(alias="url", serialization_alias="url") + + +class StructureMap(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='StructureMap', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='StructureMap' + ) + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + group: PyList[StructureMapGroup] = Field(alias="group", serialization_alias="group") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + import_: PyList[str] | None = Field(None, alias="import", serialization_alias="import") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + name: str = Field(alias="name", serialization_alias="name") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + structure: PyList[StructureMapStructure] | None = Field(None, alias="structure", serialization_alias="structure") + title: str | None = Field(None, alias="title", serialization_alias="title") + url: str = Field(alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> StructureMap: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/subscription.py b/examples/python/generated/hl7_fhir_r4_core/subscription.py new file mode 100644 index 000000000..8080535c1 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/subscription.py @@ -0,0 +1,45 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import BackboneElement, ContactPoint +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class SubscriptionChannel(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + endpoint: str | None = Field(None, alias="endpoint", serialization_alias="endpoint") + header: PyList[str] | None = Field(None, alias="header", serialization_alias="header") + payload: str | None = Field(None, alias="payload", serialization_alias="payload") + type: Literal["rest-hook", "websocket", "email", "sms", "message"] = Field(alias="type", serialization_alias="type") + + +class Subscription(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Subscription', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Subscription' + ) + channel: SubscriptionChannel = Field(alias="channel", serialization_alias="channel") + contact: PyList[ContactPoint] | None = Field(None, alias="contact", serialization_alias="contact") + criteria: str = Field(alias="criteria", serialization_alias="criteria") + end: str | None = Field(None, alias="end", serialization_alias="end") + error: str | None = Field(None, alias="error", serialization_alias="error") + reason: str = Field(alias="reason", serialization_alias="reason") + status: Literal["requested", "active", "error", "off"] = Field(alias="status", serialization_alias="status") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Subscription: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/substance.py b/examples/python/generated/hl7_fhir_r4_core/substance.py new file mode 100644 index 000000000..a0d9cd448 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/substance.py @@ -0,0 +1,52 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Quantity, Ratio, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class SubstanceIngredient(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + quantity: Ratio | None = Field(None, alias="quantity", serialization_alias="quantity") + substance_codeable_concept: CodeableConcept | None = Field(None, alias="substanceCodeableConcept", serialization_alias="substanceCodeableConcept") + substance_reference: Reference | None = Field(None, alias="substanceReference", serialization_alias="substanceReference") + +class SubstanceInstance(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + expiry: str | None = Field(None, alias="expiry", serialization_alias="expiry") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + + +class Substance(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Substance', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Substance' + ) + category: PyList[CodeableConcept] | None = Field(None, alias="category", serialization_alias="category") + code: CodeableConcept = Field(alias="code", serialization_alias="code") + description: str | None = Field(None, alias="description", serialization_alias="description") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + ingredient: PyList[SubstanceIngredient] | None = Field(None, alias="ingredient", serialization_alias="ingredient") + instance: PyList[SubstanceInstance] | None = Field(None, alias="instance", serialization_alias="instance") + status: Literal["active", "inactive", "entered-in-error"] | None = Field(None, alias="status", serialization_alias="status") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Substance: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/substance_nucleic_acid.py b/examples/python/generated/hl7_fhir_r4_core/substance_nucleic_acid.py new file mode 100644 index 000000000..f18fd9f14 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/substance_nucleic_acid.py @@ -0,0 +1,60 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import Attachment, BackboneElement, CodeableConcept, Identifier +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class SubstanceNucleicAcidSubunit(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + five_prime: CodeableConcept | None = Field(None, alias="fivePrime", serialization_alias="fivePrime") + length: int | None = Field(None, alias="length", serialization_alias="length") + linkage: PyList[SubstanceNucleicAcidSubunitLinkage] | None = Field(None, alias="linkage", serialization_alias="linkage") + sequence: str | None = Field(None, alias="sequence", serialization_alias="sequence") + sequence_attachment: Attachment | None = Field(None, alias="sequenceAttachment", serialization_alias="sequenceAttachment") + subunit: int | None = Field(None, alias="subunit", serialization_alias="subunit") + sugar: PyList[SubstanceNucleicAcidSubunitSugar] | None = Field(None, alias="sugar", serialization_alias="sugar") + three_prime: CodeableConcept | None = Field(None, alias="threePrime", serialization_alias="threePrime") + +class SubstanceNucleicAcidSubunitLinkage(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + connectivity: str | None = Field(None, alias="connectivity", serialization_alias="connectivity") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + name: str | None = Field(None, alias="name", serialization_alias="name") + residue_site: str | None = Field(None, alias="residueSite", serialization_alias="residueSite") + +class SubstanceNucleicAcidSubunitSugar(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + name: str | None = Field(None, alias="name", serialization_alias="name") + residue_site: str | None = Field(None, alias="residueSite", serialization_alias="residueSite") + + +class SubstanceNucleicAcid(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='SubstanceNucleicAcid', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='SubstanceNucleicAcid' + ) + area_of_hybridisation: str | None = Field(None, alias="areaOfHybridisation", serialization_alias="areaOfHybridisation") + number_of_subunits: int | None = Field(None, alias="numberOfSubunits", serialization_alias="numberOfSubunits") + oligo_nucleotide_type: CodeableConcept | None = Field(None, alias="oligoNucleotideType", serialization_alias="oligoNucleotideType") + sequence_type: CodeableConcept | None = Field(None, alias="sequenceType", serialization_alias="sequenceType") + subunit: PyList[SubstanceNucleicAcidSubunit] | None = Field(None, alias="subunit", serialization_alias="subunit") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> SubstanceNucleicAcid: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/substance_polymer.py b/examples/python/generated/hl7_fhir_r4_core/substance_polymer.py new file mode 100644 index 000000000..64d1c6a94 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/substance_polymer.py @@ -0,0 +1,77 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Attachment, BackboneElement, CodeableConcept, SubstanceAmount +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class SubstancePolymerMonomerSet(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + ratio_type: CodeableConcept | None = Field(None, alias="ratioType", serialization_alias="ratioType") + starting_material: PyList[SubstancePolymerMonomerSetStartingMaterial] | None = Field(None, alias="startingMaterial", serialization_alias="startingMaterial") + +class SubstancePolymerMonomerSetStartingMaterial(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount: SubstanceAmount | None = Field(None, alias="amount", serialization_alias="amount") + is_defining: bool | None = Field(None, alias="isDefining", serialization_alias="isDefining") + material: CodeableConcept | None = Field(None, alias="material", serialization_alias="material") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class SubstancePolymerRepeat(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + average_molecular_formula: str | None = Field(None, alias="averageMolecularFormula", serialization_alias="averageMolecularFormula") + number_of_units: int | None = Field(None, alias="numberOfUnits", serialization_alias="numberOfUnits") + repeat_unit: PyList[SubstancePolymerRepeatRepeatUnit] | None = Field(None, alias="repeatUnit", serialization_alias="repeatUnit") + repeat_unit_amount_type: CodeableConcept | None = Field(None, alias="repeatUnitAmountType", serialization_alias="repeatUnitAmountType") + +class SubstancePolymerRepeatRepeatUnit(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount: SubstanceAmount | None = Field(None, alias="amount", serialization_alias="amount") + degree_of_polymerisation: PyList[SubstancePolymerRepeatRepeatUnitDegreeOfPolymerisation] | None = Field(None, alias="degreeOfPolymerisation", serialization_alias="degreeOfPolymerisation") + orientation_of_polymerisation: CodeableConcept | None = Field(None, alias="orientationOfPolymerisation", serialization_alias="orientationOfPolymerisation") + repeat_unit: str | None = Field(None, alias="repeatUnit", serialization_alias="repeatUnit") + structural_representation: PyList[SubstancePolymerRepeatRepeatUnitStructuralRepresentation] | None = Field(None, alias="structuralRepresentation", serialization_alias="structuralRepresentation") + +class SubstancePolymerRepeatRepeatUnitDegreeOfPolymerisation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount: SubstanceAmount | None = Field(None, alias="amount", serialization_alias="amount") + degree: CodeableConcept | None = Field(None, alias="degree", serialization_alias="degree") + +class SubstancePolymerRepeatRepeatUnitStructuralRepresentation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + attachment: Attachment | None = Field(None, alias="attachment", serialization_alias="attachment") + representation: str | None = Field(None, alias="representation", serialization_alias="representation") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + +class SubstancePolymer(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='SubstancePolymer', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='SubstancePolymer' + ) + class_: CodeableConcept | None = Field(None, alias="class", serialization_alias="class") + copolymer_connectivity: PyList[CodeableConcept] | None = Field(None, alias="copolymerConnectivity", serialization_alias="copolymerConnectivity") + geometry: CodeableConcept | None = Field(None, alias="geometry", serialization_alias="geometry") + modification: PyList[str] | None = Field(None, alias="modification", serialization_alias="modification") + monomer_set: PyList[SubstancePolymerMonomerSet] | None = Field(None, alias="monomerSet", serialization_alias="monomerSet") + repeat: PyList[SubstancePolymerRepeat] | None = Field(None, alias="repeat", serialization_alias="repeat") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> SubstancePolymer: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/substance_protein.py b/examples/python/generated/hl7_fhir_r4_core/substance_protein.py new file mode 100644 index 000000000..60b3fcd5f --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/substance_protein.py @@ -0,0 +1,46 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import Attachment, BackboneElement, CodeableConcept, Identifier +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class SubstanceProteinSubunit(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + c_terminal_modification: str | None = Field(None, alias="cTerminalModification", serialization_alias="cTerminalModification") + c_terminal_modification_id: Identifier | None = Field(None, alias="cTerminalModificationId", serialization_alias="cTerminalModificationId") + length: int | None = Field(None, alias="length", serialization_alias="length") + n_terminal_modification: str | None = Field(None, alias="nTerminalModification", serialization_alias="nTerminalModification") + n_terminal_modification_id: Identifier | None = Field(None, alias="nTerminalModificationId", serialization_alias="nTerminalModificationId") + sequence: str | None = Field(None, alias="sequence", serialization_alias="sequence") + sequence_attachment: Attachment | None = Field(None, alias="sequenceAttachment", serialization_alias="sequenceAttachment") + subunit: int | None = Field(None, alias="subunit", serialization_alias="subunit") + + +class SubstanceProtein(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='SubstanceProtein', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='SubstanceProtein' + ) + disulfide_linkage: PyList[str] | None = Field(None, alias="disulfideLinkage", serialization_alias="disulfideLinkage") + number_of_subunits: int | None = Field(None, alias="numberOfSubunits", serialization_alias="numberOfSubunits") + sequence_type: CodeableConcept | None = Field(None, alias="sequenceType", serialization_alias="sequenceType") + subunit: PyList[SubstanceProteinSubunit] | None = Field(None, alias="subunit", serialization_alias="subunit") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> SubstanceProtein: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/substance_reference_information.py b/examples/python/generated/hl7_fhir_r4_core/substance_reference_information.py new file mode 100644 index 000000000..229ef4263 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/substance_reference_information.py @@ -0,0 +1,70 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Quantity, Range, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class SubstanceReferenceInformationClassification(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + classification: CodeableConcept | None = Field(None, alias="classification", serialization_alias="classification") + domain: CodeableConcept | None = Field(None, alias="domain", serialization_alias="domain") + source: PyList[Reference] | None = Field(None, alias="source", serialization_alias="source") + subtype: PyList[CodeableConcept] | None = Field(None, alias="subtype", serialization_alias="subtype") + +class SubstanceReferenceInformationGene(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + gene: CodeableConcept | None = Field(None, alias="gene", serialization_alias="gene") + gene_sequence_origin: CodeableConcept | None = Field(None, alias="geneSequenceOrigin", serialization_alias="geneSequenceOrigin") + source: PyList[Reference] | None = Field(None, alias="source", serialization_alias="source") + +class SubstanceReferenceInformationGeneElement(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + element: Identifier | None = Field(None, alias="element", serialization_alias="element") + source: PyList[Reference] | None = Field(None, alias="source", serialization_alias="source") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class SubstanceReferenceInformationTarget(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount_quantity: Quantity | None = Field(None, alias="amountQuantity", serialization_alias="amountQuantity") + amount_range: Range | None = Field(None, alias="amountRange", serialization_alias="amountRange") + amount_string: str | None = Field(None, alias="amountString", serialization_alias="amountString") + amount_type: CodeableConcept | None = Field(None, alias="amountType", serialization_alias="amountType") + interaction: CodeableConcept | None = Field(None, alias="interaction", serialization_alias="interaction") + organism: CodeableConcept | None = Field(None, alias="organism", serialization_alias="organism") + organism_type: CodeableConcept | None = Field(None, alias="organismType", serialization_alias="organismType") + source: PyList[Reference] | None = Field(None, alias="source", serialization_alias="source") + target: Identifier | None = Field(None, alias="target", serialization_alias="target") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + +class SubstanceReferenceInformation(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='SubstanceReferenceInformation', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='SubstanceReferenceInformation' + ) + classification: PyList[SubstanceReferenceInformationClassification] | None = Field(None, alias="classification", serialization_alias="classification") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + gene: PyList[SubstanceReferenceInformationGene] | None = Field(None, alias="gene", serialization_alias="gene") + gene_element: PyList[SubstanceReferenceInformationGeneElement] | None = Field(None, alias="geneElement", serialization_alias="geneElement") + target: PyList[SubstanceReferenceInformationTarget] | None = Field(None, alias="target", serialization_alias="target") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> SubstanceReferenceInformation: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/substance_source_material.py b/examples/python/generated/hl7_fhir_r4_core/substance_source_material.py new file mode 100644 index 000000000..f83aa7be2 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/substance_source_material.py @@ -0,0 +1,85 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import BackboneElement, CodeableConcept, Identifier +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class SubstanceSourceMaterialFractionDescription(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + fraction: str | None = Field(None, alias="fraction", serialization_alias="fraction") + material_type: CodeableConcept | None = Field(None, alias="materialType", serialization_alias="materialType") + +class SubstanceSourceMaterialOrganism(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + author: PyList[SubstanceSourceMaterialOrganismAuthor] | None = Field(None, alias="author", serialization_alias="author") + family: CodeableConcept | None = Field(None, alias="family", serialization_alias="family") + genus: CodeableConcept | None = Field(None, alias="genus", serialization_alias="genus") + hybrid: SubstanceSourceMaterialOrganismHybrid | None = Field(None, alias="hybrid", serialization_alias="hybrid") + intraspecific_description: str | None = Field(None, alias="intraspecificDescription", serialization_alias="intraspecificDescription") + intraspecific_type: CodeableConcept | None = Field(None, alias="intraspecificType", serialization_alias="intraspecificType") + organism_general: SubstanceSourceMaterialOrganismOrganismGeneral | None = Field(None, alias="organismGeneral", serialization_alias="organismGeneral") + species: CodeableConcept | None = Field(None, alias="species", serialization_alias="species") + +class SubstanceSourceMaterialOrganismAuthor(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + author_description: str | None = Field(None, alias="authorDescription", serialization_alias="authorDescription") + author_type: CodeableConcept | None = Field(None, alias="authorType", serialization_alias="authorType") + +class SubstanceSourceMaterialOrganismHybrid(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + hybrid_type: CodeableConcept | None = Field(None, alias="hybridType", serialization_alias="hybridType") + maternal_organism_id: str | None = Field(None, alias="maternalOrganismId", serialization_alias="maternalOrganismId") + maternal_organism_name: str | None = Field(None, alias="maternalOrganismName", serialization_alias="maternalOrganismName") + paternal_organism_id: str | None = Field(None, alias="paternalOrganismId", serialization_alias="paternalOrganismId") + paternal_organism_name: str | None = Field(None, alias="paternalOrganismName", serialization_alias="paternalOrganismName") + +class SubstanceSourceMaterialOrganismOrganismGeneral(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + class_: CodeableConcept | None = Field(None, alias="class", serialization_alias="class") + kingdom: CodeableConcept | None = Field(None, alias="kingdom", serialization_alias="kingdom") + order: CodeableConcept | None = Field(None, alias="order", serialization_alias="order") + phylum: CodeableConcept | None = Field(None, alias="phylum", serialization_alias="phylum") + +class SubstanceSourceMaterialPartDescription(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + part: CodeableConcept | None = Field(None, alias="part", serialization_alias="part") + part_location: CodeableConcept | None = Field(None, alias="partLocation", serialization_alias="partLocation") + + +class SubstanceSourceMaterial(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='SubstanceSourceMaterial', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='SubstanceSourceMaterial' + ) + country_of_origin: PyList[CodeableConcept] | None = Field(None, alias="countryOfOrigin", serialization_alias="countryOfOrigin") + development_stage: CodeableConcept | None = Field(None, alias="developmentStage", serialization_alias="developmentStage") + fraction_description: PyList[SubstanceSourceMaterialFractionDescription] | None = Field(None, alias="fractionDescription", serialization_alias="fractionDescription") + geographical_location: PyList[str] | None = Field(None, alias="geographicalLocation", serialization_alias="geographicalLocation") + organism: SubstanceSourceMaterialOrganism | None = Field(None, alias="organism", serialization_alias="organism") + organism_id: Identifier | None = Field(None, alias="organismId", serialization_alias="organismId") + organism_name: str | None = Field(None, alias="organismName", serialization_alias="organismName") + parent_substance_id: PyList[Identifier] | None = Field(None, alias="parentSubstanceId", serialization_alias="parentSubstanceId") + parent_substance_name: PyList[str] | None = Field(None, alias="parentSubstanceName", serialization_alias="parentSubstanceName") + part_description: PyList[SubstanceSourceMaterialPartDescription] | None = Field(None, alias="partDescription", serialization_alias="partDescription") + source_material_class: CodeableConcept | None = Field(None, alias="sourceMaterialClass", serialization_alias="sourceMaterialClass") + source_material_state: CodeableConcept | None = Field(None, alias="sourceMaterialState", serialization_alias="sourceMaterialState") + source_material_type: CodeableConcept | None = Field(None, alias="sourceMaterialType", serialization_alias="sourceMaterialType") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> SubstanceSourceMaterial: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/substance_specification.py b/examples/python/generated/hl7_fhir_r4_core/substance_specification.py new file mode 100644 index 000000000..ab5d0f8ac --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/substance_specification.py @@ -0,0 +1,146 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Attachment, BackboneElement, CodeableConcept, Identifier, Quantity, Range, Ratio, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class SubstanceSpecificationCode(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + source: PyList[Reference] | None = Field(None, alias="source", serialization_alias="source") + status: CodeableConcept | None = Field(None, alias="status", serialization_alias="status") + status_date: str | None = Field(None, alias="statusDate", serialization_alias="statusDate") + +class SubstanceSpecificationMoiety(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount_quantity: Quantity | None = Field(None, alias="amountQuantity", serialization_alias="amountQuantity") + amount_string: str | None = Field(None, alias="amountString", serialization_alias="amountString") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + molecular_formula: str | None = Field(None, alias="molecularFormula", serialization_alias="molecularFormula") + name: str | None = Field(None, alias="name", serialization_alias="name") + optical_activity: CodeableConcept | None = Field(None, alias="opticalActivity", serialization_alias="opticalActivity") + role: CodeableConcept | None = Field(None, alias="role", serialization_alias="role") + stereochemistry: CodeableConcept | None = Field(None, alias="stereochemistry", serialization_alias="stereochemistry") + +class SubstanceSpecificationName(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + domain: PyList[CodeableConcept] | None = Field(None, alias="domain", serialization_alias="domain") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + language: PyList[CodeableConcept] | None = Field(None, alias="language", serialization_alias="language") + name: str = Field(alias="name", serialization_alias="name") + official: PyList[SubstanceSpecificationNameOfficial] | None = Field(None, alias="official", serialization_alias="official") + preferred: bool | None = Field(None, alias="preferred", serialization_alias="preferred") + source: PyList[Reference] | None = Field(None, alias="source", serialization_alias="source") + status: CodeableConcept | None = Field(None, alias="status", serialization_alias="status") + synonym: PyList[SubstanceSpecificationName] | None = Field(None, alias="synonym", serialization_alias="synonym") + translation: PyList[SubstanceSpecificationName] | None = Field(None, alias="translation", serialization_alias="translation") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class SubstanceSpecificationNameOfficial(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + authority: CodeableConcept | None = Field(None, alias="authority", serialization_alias="authority") + date: str | None = Field(None, alias="date", serialization_alias="date") + status: CodeableConcept | None = Field(None, alias="status", serialization_alias="status") + +class SubstanceSpecificationProperty(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount_quantity: Quantity | None = Field(None, alias="amountQuantity", serialization_alias="amountQuantity") + amount_string: str | None = Field(None, alias="amountString", serialization_alias="amountString") + category: CodeableConcept | None = Field(None, alias="category", serialization_alias="category") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + defining_substance_codeable_concept: CodeableConcept | None = Field(None, alias="definingSubstanceCodeableConcept", serialization_alias="definingSubstanceCodeableConcept") + defining_substance_reference: Reference | None = Field(None, alias="definingSubstanceReference", serialization_alias="definingSubstanceReference") + parameters: str | None = Field(None, alias="parameters", serialization_alias="parameters") + +class SubstanceSpecificationRelationship(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount_quantity: Quantity | None = Field(None, alias="amountQuantity", serialization_alias="amountQuantity") + amount_range: Range | None = Field(None, alias="amountRange", serialization_alias="amountRange") + amount_ratio: Ratio | None = Field(None, alias="amountRatio", serialization_alias="amountRatio") + amount_ratio_low_limit: Ratio | None = Field(None, alias="amountRatioLowLimit", serialization_alias="amountRatioLowLimit") + amount_string: str | None = Field(None, alias="amountString", serialization_alias="amountString") + amount_type: CodeableConcept | None = Field(None, alias="amountType", serialization_alias="amountType") + is_defining: bool | None = Field(None, alias="isDefining", serialization_alias="isDefining") + relationship: CodeableConcept | None = Field(None, alias="relationship", serialization_alias="relationship") + source: PyList[Reference] | None = Field(None, alias="source", serialization_alias="source") + substance_codeable_concept: CodeableConcept | None = Field(None, alias="substanceCodeableConcept", serialization_alias="substanceCodeableConcept") + substance_reference: Reference | None = Field(None, alias="substanceReference", serialization_alias="substanceReference") + +class SubstanceSpecificationStructure(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + isotope: PyList[SubstanceSpecificationStructureIsotope] | None = Field(None, alias="isotope", serialization_alias="isotope") + molecular_formula: str | None = Field(None, alias="molecularFormula", serialization_alias="molecularFormula") + molecular_formula_by_moiety: str | None = Field(None, alias="molecularFormulaByMoiety", serialization_alias="molecularFormulaByMoiety") + molecular_weight: SubstanceSpecificationStructureIsotopeMolecularWeight | None = Field(None, alias="molecularWeight", serialization_alias="molecularWeight") + optical_activity: CodeableConcept | None = Field(None, alias="opticalActivity", serialization_alias="opticalActivity") + representation: PyList[SubstanceSpecificationStructureRepresentation] | None = Field(None, alias="representation", serialization_alias="representation") + source: PyList[Reference] | None = Field(None, alias="source", serialization_alias="source") + stereochemistry: CodeableConcept | None = Field(None, alias="stereochemistry", serialization_alias="stereochemistry") + +class SubstanceSpecificationStructureIsotope(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + half_life: Quantity | None = Field(None, alias="halfLife", serialization_alias="halfLife") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + molecular_weight: SubstanceSpecificationStructureIsotopeMolecularWeight | None = Field(None, alias="molecularWeight", serialization_alias="molecularWeight") + name: CodeableConcept | None = Field(None, alias="name", serialization_alias="name") + substitution: CodeableConcept | None = Field(None, alias="substitution", serialization_alias="substitution") + +class SubstanceSpecificationStructureIsotopeMolecularWeight(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount: Quantity | None = Field(None, alias="amount", serialization_alias="amount") + method: CodeableConcept | None = Field(None, alias="method", serialization_alias="method") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + +class SubstanceSpecificationStructureRepresentation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + attachment: Attachment | None = Field(None, alias="attachment", serialization_alias="attachment") + representation: str | None = Field(None, alias="representation", serialization_alias="representation") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + +class SubstanceSpecification(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='SubstanceSpecification', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='SubstanceSpecification' + ) + code: PyList[SubstanceSpecificationCode] | None = Field(None, alias="code", serialization_alias="code") + comment: str | None = Field(None, alias="comment", serialization_alias="comment") + description: str | None = Field(None, alias="description", serialization_alias="description") + domain: CodeableConcept | None = Field(None, alias="domain", serialization_alias="domain") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + moiety: PyList[SubstanceSpecificationMoiety] | None = Field(None, alias="moiety", serialization_alias="moiety") + molecular_weight: PyList[SubstanceSpecificationStructureIsotopeMolecularWeight] | None = Field(None, alias="molecularWeight", serialization_alias="molecularWeight") + name: PyList[SubstanceSpecificationName] | None = Field(None, alias="name", serialization_alias="name") + nucleic_acid: Reference | None = Field(None, alias="nucleicAcid", serialization_alias="nucleicAcid") + polymer: Reference | None = Field(None, alias="polymer", serialization_alias="polymer") + property: PyList[SubstanceSpecificationProperty] | None = Field(None, alias="property", serialization_alias="property") + protein: Reference | None = Field(None, alias="protein", serialization_alias="protein") + reference_information: Reference | None = Field(None, alias="referenceInformation", serialization_alias="referenceInformation") + relationship: PyList[SubstanceSpecificationRelationship] | None = Field(None, alias="relationship", serialization_alias="relationship") + source: PyList[Reference] | None = Field(None, alias="source", serialization_alias="source") + source_material: Reference | None = Field(None, alias="sourceMaterial", serialization_alias="sourceMaterial") + status: CodeableConcept | None = Field(None, alias="status", serialization_alias="status") + structure: SubstanceSpecificationStructure | None = Field(None, alias="structure", serialization_alias="structure") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> SubstanceSpecification: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/supply_delivery.py b/examples/python/generated/hl7_fhir_r4_core/supply_delivery.py new file mode 100644 index 000000000..bc18648fd --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/supply_delivery.py @@ -0,0 +1,52 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Period, Quantity, Reference, Timing +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class SupplyDeliverySuppliedItem(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + item_codeable_concept: CodeableConcept | None = Field(None, alias="itemCodeableConcept", serialization_alias="itemCodeableConcept") + item_reference: Reference | None = Field(None, alias="itemReference", serialization_alias="itemReference") + quantity: Quantity | None = Field(None, alias="quantity", serialization_alias="quantity") + + +class SupplyDelivery(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='SupplyDelivery', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='SupplyDelivery' + ) + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + destination: Reference | None = Field(None, alias="destination", serialization_alias="destination") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + occurrence_date_time: str | None = Field(None, alias="occurrenceDateTime", serialization_alias="occurrenceDateTime") + occurrence_period: Period | None = Field(None, alias="occurrencePeriod", serialization_alias="occurrencePeriod") + occurrence_timing: Timing | None = Field(None, alias="occurrenceTiming", serialization_alias="occurrenceTiming") + part_of: PyList[Reference] | None = Field(None, alias="partOf", serialization_alias="partOf") + patient: Reference | None = Field(None, alias="patient", serialization_alias="patient") + receiver: PyList[Reference] | None = Field(None, alias="receiver", serialization_alias="receiver") + status: Literal["in-progress", "completed", "abandoned", "entered-in-error"] | None = Field(None, alias="status", serialization_alias="status") + supplied_item: SupplyDeliverySuppliedItem | None = Field(None, alias="suppliedItem", serialization_alias="suppliedItem") + supplier: Reference | None = Field(None, alias="supplier", serialization_alias="supplier") + type: CodeableConcept | None = Field(None, alias="type", serialization_alias="type") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> SupplyDelivery: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/supply_request.py b/examples/python/generated/hl7_fhir_r4_core/supply_request.py new file mode 100644 index 000000000..c9d122d6e --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/supply_request.py @@ -0,0 +1,59 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Identifier, Period, Quantity, Range, Reference, Timing +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class SupplyRequestParameter(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_codeable_concept: CodeableConcept | None = Field(None, alias="valueCodeableConcept", serialization_alias="valueCodeableConcept") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_range: Range | None = Field(None, alias="valueRange", serialization_alias="valueRange") + + +class SupplyRequest(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='SupplyRequest', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='SupplyRequest' + ) + authored_on: str | None = Field(None, alias="authoredOn", serialization_alias="authoredOn") + category: CodeableConcept | None = Field(None, alias="category", serialization_alias="category") + deliver_from: Reference | None = Field(None, alias="deliverFrom", serialization_alias="deliverFrom") + deliver_to: Reference | None = Field(None, alias="deliverTo", serialization_alias="deliverTo") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + item_codeable_concept: CodeableConcept | None = Field(None, alias="itemCodeableConcept", serialization_alias="itemCodeableConcept") + item_reference: Reference | None = Field(None, alias="itemReference", serialization_alias="itemReference") + occurrence_date_time: str | None = Field(None, alias="occurrenceDateTime", serialization_alias="occurrenceDateTime") + occurrence_period: Period | None = Field(None, alias="occurrencePeriod", serialization_alias="occurrencePeriod") + occurrence_timing: Timing | None = Field(None, alias="occurrenceTiming", serialization_alias="occurrenceTiming") + parameter: PyList[SupplyRequestParameter] | None = Field(None, alias="parameter", serialization_alias="parameter") + priority: Literal["routine", "urgent", "asap", "stat"] | None = Field(None, alias="priority", serialization_alias="priority") + quantity: Quantity = Field(alias="quantity", serialization_alias="quantity") + reason_code: PyList[CodeableConcept] | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: PyList[Reference] | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + requester: Reference | None = Field(None, alias="requester", serialization_alias="requester") + status: Literal["draft", "active", "suspended", "cancelled", "completed", "entered-in-error", "unknown"] | None = Field(None, alias="status", serialization_alias="status") + supplier: PyList[Reference] | None = Field(None, alias="supplier", serialization_alias="supplier") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> SupplyRequest: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/task.py b/examples/python/generated/hl7_fhir_r4_core/task.py new file mode 100644 index 000000000..2a21a6255 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/task.py @@ -0,0 +1,181 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Address, Age, Annotation, Attachment, BackboneElement, CodeableConcept, Coding, ContactDetail, ContactPoint, \ + Contributor, Count, DataRequirement, Distance, Dosage, Duration, Expression, HumanName, Identifier, Meta, \ + Money, ParameterDefinition, Period, Quantity, Range, Ratio, Reference, RelatedArtifact, SampledData, Signature, \ + Timing, TriggerDefinition, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class TaskInput(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + value_address: Address | None = Field(None, alias="valueAddress", serialization_alias="valueAddress") + value_age: Age | None = Field(None, alias="valueAge", serialization_alias="valueAge") + value_annotation: Annotation | None = Field(None, alias="valueAnnotation", serialization_alias="valueAnnotation") + value_attachment: Attachment | None = Field(None, alias="valueAttachment", serialization_alias="valueAttachment") + value_base64binary: str | None = Field(None, alias="valueBase64Binary", serialization_alias="valueBase64Binary") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_canonical: str | None = Field(None, alias="valueCanonical", serialization_alias="valueCanonical") + value_code: str | None = Field(None, alias="valueCode", serialization_alias="valueCode") + value_codeable_concept: CodeableConcept | None = Field(None, alias="valueCodeableConcept", serialization_alias="valueCodeableConcept") + value_coding: Coding | None = Field(None, alias="valueCoding", serialization_alias="valueCoding") + value_contact_detail: ContactDetail | None = Field(None, alias="valueContactDetail", serialization_alias="valueContactDetail") + value_contact_point: ContactPoint | None = Field(None, alias="valueContactPoint", serialization_alias="valueContactPoint") + value_contributor: Contributor | None = Field(None, alias="valueContributor", serialization_alias="valueContributor") + value_count: Count | None = Field(None, alias="valueCount", serialization_alias="valueCount") + value_data_requirement: DataRequirement | None = Field(None, alias="valueDataRequirement", serialization_alias="valueDataRequirement") + value_date: str | None = Field(None, alias="valueDate", serialization_alias="valueDate") + value_date_time: str | None = Field(None, alias="valueDateTime", serialization_alias="valueDateTime") + value_decimal: float | None = Field(None, alias="valueDecimal", serialization_alias="valueDecimal") + value_distance: Distance | None = Field(None, alias="valueDistance", serialization_alias="valueDistance") + value_dosage: Dosage | None = Field(None, alias="valueDosage", serialization_alias="valueDosage") + value_duration: Duration | None = Field(None, alias="valueDuration", serialization_alias="valueDuration") + value_expression: Expression | None = Field(None, alias="valueExpression", serialization_alias="valueExpression") + value_human_name: HumanName | None = Field(None, alias="valueHumanName", serialization_alias="valueHumanName") + value_id: str | None = Field(None, alias="valueId", serialization_alias="valueId") + value_identifier: Identifier | None = Field(None, alias="valueIdentifier", serialization_alias="valueIdentifier") + value_instant: str | None = Field(None, alias="valueInstant", serialization_alias="valueInstant") + value_integer: int | None = Field(None, alias="valueInteger", serialization_alias="valueInteger") + value_markdown: str | None = Field(None, alias="valueMarkdown", serialization_alias="valueMarkdown") + value_meta: Meta | None = Field(None, alias="valueMeta", serialization_alias="valueMeta") + value_money: Money | None = Field(None, alias="valueMoney", serialization_alias="valueMoney") + value_oid: str | None = Field(None, alias="valueOid", serialization_alias="valueOid") + value_parameter_definition: ParameterDefinition | None = Field(None, alias="valueParameterDefinition", serialization_alias="valueParameterDefinition") + value_period: Period | None = Field(None, alias="valuePeriod", serialization_alias="valuePeriod") + value_positive_int: PositiveInt | None = Field(None, alias="valuePositiveInt", serialization_alias="valuePositiveInt") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_range: Range | None = Field(None, alias="valueRange", serialization_alias="valueRange") + value_ratio: Ratio | None = Field(None, alias="valueRatio", serialization_alias="valueRatio") + value_reference: Reference | None = Field(None, alias="valueReference", serialization_alias="valueReference") + value_related_artifact: RelatedArtifact | None = Field(None, alias="valueRelatedArtifact", serialization_alias="valueRelatedArtifact") + value_sampled_data: SampledData | None = Field(None, alias="valueSampledData", serialization_alias="valueSampledData") + value_signature: Signature | None = Field(None, alias="valueSignature", serialization_alias="valueSignature") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + value_time: str | None = Field(None, alias="valueTime", serialization_alias="valueTime") + value_timing: Timing | None = Field(None, alias="valueTiming", serialization_alias="valueTiming") + value_trigger_definition: TriggerDefinition | None = Field(None, alias="valueTriggerDefinition", serialization_alias="valueTriggerDefinition") + value_unsigned_int: int | None = Field(None, alias="valueUnsignedInt", serialization_alias="valueUnsignedInt") + value_uri: str | None = Field(None, alias="valueUri", serialization_alias="valueUri") + value_url: str | None = Field(None, alias="valueUrl", serialization_alias="valueUrl") + value_usage_context: UsageContext | None = Field(None, alias="valueUsageContext", serialization_alias="valueUsageContext") + value_uuid: str | None = Field(None, alias="valueUuid", serialization_alias="valueUuid") + +class TaskOutput(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + type: CodeableConcept = Field(alias="type", serialization_alias="type") + value_address: Address | None = Field(None, alias="valueAddress", serialization_alias="valueAddress") + value_age: Age | None = Field(None, alias="valueAge", serialization_alias="valueAge") + value_annotation: Annotation | None = Field(None, alias="valueAnnotation", serialization_alias="valueAnnotation") + value_attachment: Attachment | None = Field(None, alias="valueAttachment", serialization_alias="valueAttachment") + value_base64binary: str | None = Field(None, alias="valueBase64Binary", serialization_alias="valueBase64Binary") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_canonical: str | None = Field(None, alias="valueCanonical", serialization_alias="valueCanonical") + value_code: str | None = Field(None, alias="valueCode", serialization_alias="valueCode") + value_codeable_concept: CodeableConcept | None = Field(None, alias="valueCodeableConcept", serialization_alias="valueCodeableConcept") + value_coding: Coding | None = Field(None, alias="valueCoding", serialization_alias="valueCoding") + value_contact_detail: ContactDetail | None = Field(None, alias="valueContactDetail", serialization_alias="valueContactDetail") + value_contact_point: ContactPoint | None = Field(None, alias="valueContactPoint", serialization_alias="valueContactPoint") + value_contributor: Contributor | None = Field(None, alias="valueContributor", serialization_alias="valueContributor") + value_count: Count | None = Field(None, alias="valueCount", serialization_alias="valueCount") + value_data_requirement: DataRequirement | None = Field(None, alias="valueDataRequirement", serialization_alias="valueDataRequirement") + value_date: str | None = Field(None, alias="valueDate", serialization_alias="valueDate") + value_date_time: str | None = Field(None, alias="valueDateTime", serialization_alias="valueDateTime") + value_decimal: float | None = Field(None, alias="valueDecimal", serialization_alias="valueDecimal") + value_distance: Distance | None = Field(None, alias="valueDistance", serialization_alias="valueDistance") + value_dosage: Dosage | None = Field(None, alias="valueDosage", serialization_alias="valueDosage") + value_duration: Duration | None = Field(None, alias="valueDuration", serialization_alias="valueDuration") + value_expression: Expression | None = Field(None, alias="valueExpression", serialization_alias="valueExpression") + value_human_name: HumanName | None = Field(None, alias="valueHumanName", serialization_alias="valueHumanName") + value_id: str | None = Field(None, alias="valueId", serialization_alias="valueId") + value_identifier: Identifier | None = Field(None, alias="valueIdentifier", serialization_alias="valueIdentifier") + value_instant: str | None = Field(None, alias="valueInstant", serialization_alias="valueInstant") + value_integer: int | None = Field(None, alias="valueInteger", serialization_alias="valueInteger") + value_markdown: str | None = Field(None, alias="valueMarkdown", serialization_alias="valueMarkdown") + value_meta: Meta | None = Field(None, alias="valueMeta", serialization_alias="valueMeta") + value_money: Money | None = Field(None, alias="valueMoney", serialization_alias="valueMoney") + value_oid: str | None = Field(None, alias="valueOid", serialization_alias="valueOid") + value_parameter_definition: ParameterDefinition | None = Field(None, alias="valueParameterDefinition", serialization_alias="valueParameterDefinition") + value_period: Period | None = Field(None, alias="valuePeriod", serialization_alias="valuePeriod") + value_positive_int: PositiveInt | None = Field(None, alias="valuePositiveInt", serialization_alias="valuePositiveInt") + value_quantity: Quantity | None = Field(None, alias="valueQuantity", serialization_alias="valueQuantity") + value_range: Range | None = Field(None, alias="valueRange", serialization_alias="valueRange") + value_ratio: Ratio | None = Field(None, alias="valueRatio", serialization_alias="valueRatio") + value_reference: Reference | None = Field(None, alias="valueReference", serialization_alias="valueReference") + value_related_artifact: RelatedArtifact | None = Field(None, alias="valueRelatedArtifact", serialization_alias="valueRelatedArtifact") + value_sampled_data: SampledData | None = Field(None, alias="valueSampledData", serialization_alias="valueSampledData") + value_signature: Signature | None = Field(None, alias="valueSignature", serialization_alias="valueSignature") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + value_time: str | None = Field(None, alias="valueTime", serialization_alias="valueTime") + value_timing: Timing | None = Field(None, alias="valueTiming", serialization_alias="valueTiming") + value_trigger_definition: TriggerDefinition | None = Field(None, alias="valueTriggerDefinition", serialization_alias="valueTriggerDefinition") + value_unsigned_int: int | None = Field(None, alias="valueUnsignedInt", serialization_alias="valueUnsignedInt") + value_uri: str | None = Field(None, alias="valueUri", serialization_alias="valueUri") + value_url: str | None = Field(None, alias="valueUrl", serialization_alias="valueUrl") + value_usage_context: UsageContext | None = Field(None, alias="valueUsageContext", serialization_alias="valueUsageContext") + value_uuid: str | None = Field(None, alias="valueUuid", serialization_alias="valueUuid") + +class TaskRestriction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + period: Period | None = Field(None, alias="period", serialization_alias="period") + recipient: PyList[Reference] | None = Field(None, alias="recipient", serialization_alias="recipient") + repetitions: PositiveInt | None = Field(None, alias="repetitions", serialization_alias="repetitions") + + +class Task(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='Task', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='Task' + ) + authored_on: str | None = Field(None, alias="authoredOn", serialization_alias="authoredOn") + based_on: PyList[Reference] | None = Field(None, alias="basedOn", serialization_alias="basedOn") + business_status: CodeableConcept | None = Field(None, alias="businessStatus", serialization_alias="businessStatus") + code: CodeableConcept | None = Field(None, alias="code", serialization_alias="code") + description: str | None = Field(None, alias="description", serialization_alias="description") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + execution_period: Period | None = Field(None, alias="executionPeriod", serialization_alias="executionPeriod") + focus: Reference | None = Field(None, alias="focus", serialization_alias="focus") + for_: Reference | None = Field(None, alias="for", serialization_alias="for") + group_identifier: Identifier | None = Field(None, alias="groupIdentifier", serialization_alias="groupIdentifier") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + input: PyList[TaskInput] | None = Field(None, alias="input", serialization_alias="input") + instantiates_canonical: str | None = Field(None, alias="instantiatesCanonical", serialization_alias="instantiatesCanonical") + instantiates_uri: str | None = Field(None, alias="instantiatesUri", serialization_alias="instantiatesUri") + insurance: PyList[Reference] | None = Field(None, alias="insurance", serialization_alias="insurance") + intent: Literal["unknown", "proposal", "plan", "order", "original-order", "reflex-order", "filler-order", "instance-order", "option"] = Field(alias="intent", serialization_alias="intent") + last_modified: str | None = Field(None, alias="lastModified", serialization_alias="lastModified") + location: Reference | None = Field(None, alias="location", serialization_alias="location") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + output: PyList[TaskOutput] | None = Field(None, alias="output", serialization_alias="output") + owner: Reference | None = Field(None, alias="owner", serialization_alias="owner") + part_of: PyList[Reference] | None = Field(None, alias="partOf", serialization_alias="partOf") + performer_type: PyList[CodeableConcept] | None = Field(None, alias="performerType", serialization_alias="performerType") + priority: Literal["routine", "urgent", "asap", "stat"] | None = Field(None, alias="priority", serialization_alias="priority") + reason_code: CodeableConcept | None = Field(None, alias="reasonCode", serialization_alias="reasonCode") + reason_reference: Reference | None = Field(None, alias="reasonReference", serialization_alias="reasonReference") + relevant_history: PyList[Reference] | None = Field(None, alias="relevantHistory", serialization_alias="relevantHistory") + requester: Reference | None = Field(None, alias="requester", serialization_alias="requester") + restriction: TaskRestriction | None = Field(None, alias="restriction", serialization_alias="restriction") + status: Literal["draft", "requested", "received", "accepted", "rejected", "ready", "cancelled", "in-progress", "on-hold", "failed", "completed", "entered-in-error"] = Field(alias="status", serialization_alias="status") + status_reason: CodeableConcept | None = Field(None, alias="statusReason", serialization_alias="statusReason") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> Task: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/terminology_capabilities.py b/examples/python/generated/hl7_fhir_r4_core/terminology_capabilities.py new file mode 100644 index 000000000..87f8fe540 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/terminology_capabilities.py @@ -0,0 +1,112 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, ContactDetail, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class TerminologyCapabilitiesClosure(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + translation: bool | None = Field(None, alias="translation", serialization_alias="translation") + +class TerminologyCapabilitiesCodeSystem(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + subsumption: bool | None = Field(None, alias="subsumption", serialization_alias="subsumption") + uri: str | None = Field(None, alias="uri", serialization_alias="uri") + version: PyList[TerminologyCapabilitiesCodeSystemVersion] | None = Field(None, alias="version", serialization_alias="version") + +class TerminologyCapabilitiesCodeSystemVersion(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: str | None = Field(None, alias="code", serialization_alias="code") + compositional: bool | None = Field(None, alias="compositional", serialization_alias="compositional") + filter: PyList[TerminologyCapabilitiesCodeSystemVersionFilter] | None = Field(None, alias="filter", serialization_alias="filter") + is_default: bool | None = Field(None, alias="isDefault", serialization_alias="isDefault") + language: PyList[str] | None = Field(None, alias="language", serialization_alias="language") + property: PyList[str] | None = Field(None, alias="property", serialization_alias="property") + +class TerminologyCapabilitiesCodeSystemVersionFilter(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: str = Field(alias="code", serialization_alias="code") + op: PyList[str] = Field(alias="op", serialization_alias="op") + +class TerminologyCapabilitiesExpansion(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + hierarchical: bool | None = Field(None, alias="hierarchical", serialization_alias="hierarchical") + incomplete: bool | None = Field(None, alias="incomplete", serialization_alias="incomplete") + paging: bool | None = Field(None, alias="paging", serialization_alias="paging") + parameter: PyList[TerminologyCapabilitiesExpansionParameter] | None = Field(None, alias="parameter", serialization_alias="parameter") + text_filter: str | None = Field(None, alias="textFilter", serialization_alias="textFilter") + +class TerminologyCapabilitiesExpansionParameter(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + documentation: str | None = Field(None, alias="documentation", serialization_alias="documentation") + name: str = Field(alias="name", serialization_alias="name") + +class TerminologyCapabilitiesImplementation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str = Field(alias="description", serialization_alias="description") + url: str | None = Field(None, alias="url", serialization_alias="url") + +class TerminologyCapabilitiesSoftware(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + name: str = Field(alias="name", serialization_alias="name") + version: str | None = Field(None, alias="version", serialization_alias="version") + +class TerminologyCapabilitiesTranslation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + needs_map: bool = Field(alias="needsMap", serialization_alias="needsMap") + +class TerminologyCapabilitiesValidateCode(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + translations: bool = Field(alias="translations", serialization_alias="translations") + + +class TerminologyCapabilities(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='TerminologyCapabilities', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='TerminologyCapabilities' + ) + closure: TerminologyCapabilitiesClosure | None = Field(None, alias="closure", serialization_alias="closure") + code_search: Literal["explicit", "all"] | None = Field(None, alias="codeSearch", serialization_alias="codeSearch") + code_system: PyList[TerminologyCapabilitiesCodeSystem] | None = Field(None, alias="codeSystem", serialization_alias="codeSystem") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str = Field(alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + expansion: TerminologyCapabilitiesExpansion | None = Field(None, alias="expansion", serialization_alias="expansion") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + implementation: TerminologyCapabilitiesImplementation | None = Field(None, alias="implementation", serialization_alias="implementation") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + kind: Literal["instance", "capability", "requirements"] = Field(alias="kind", serialization_alias="kind") + locked_date: bool | None = Field(None, alias="lockedDate", serialization_alias="lockedDate") + name: str | None = Field(None, alias="name", serialization_alias="name") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + software: TerminologyCapabilitiesSoftware | None = Field(None, alias="software", serialization_alias="software") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + title: str | None = Field(None, alias="title", serialization_alias="title") + translation: TerminologyCapabilitiesTranslation | None = Field(None, alias="translation", serialization_alias="translation") + url: str | None = Field(None, alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + validate_code: TerminologyCapabilitiesValidateCode | None = Field(None, alias="validateCode", serialization_alias="validateCode") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> TerminologyCapabilities: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/test_report.py b/examples/python/generated/hl7_fhir_r4_core/test_report.py new file mode 100644 index 000000000..74559c32d --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/test_report.py @@ -0,0 +1,89 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import BackboneElement, Identifier, Reference +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class TestReportParticipant(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + display: str | None = Field(None, alias="display", serialization_alias="display") + type: Literal["test-engine", "client", "server"] = Field(alias="type", serialization_alias="type") + uri: str = Field(alias="uri", serialization_alias="uri") + +class TestReportSetup(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + action: PyList[TestReportSetupAction] = Field(alias="action", serialization_alias="action") + +class TestReportSetupAction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + assert_: TestReportSetupActionAssert | None = Field(None, alias="assert", serialization_alias="assert") + operation: TestReportSetupActionOperation | None = Field(None, alias="operation", serialization_alias="operation") + +class TestReportSetupActionAssert(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + detail: str | None = Field(None, alias="detail", serialization_alias="detail") + message: str | None = Field(None, alias="message", serialization_alias="message") + result: Literal["pass", "skip", "fail", "warning", "error"] = Field(alias="result", serialization_alias="result") + +class TestReportSetupActionOperation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + detail: str | None = Field(None, alias="detail", serialization_alias="detail") + message: str | None = Field(None, alias="message", serialization_alias="message") + result: Literal["pass", "skip", "fail", "warning", "error"] = Field(alias="result", serialization_alias="result") + +class TestReportTeardown(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + action: PyList[TestReportTeardownAction] = Field(alias="action", serialization_alias="action") + +class TestReportTeardownAction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + operation: TestReportSetupActionOperation = Field(alias="operation", serialization_alias="operation") + +class TestReportTest(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + action: PyList[TestReportTestAction] = Field(alias="action", serialization_alias="action") + description: str | None = Field(None, alias="description", serialization_alias="description") + name: str | None = Field(None, alias="name", serialization_alias="name") + +class TestReportTestAction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + assert_: TestReportSetupActionAssert | None = Field(None, alias="assert", serialization_alias="assert") + operation: TestReportSetupActionOperation | None = Field(None, alias="operation", serialization_alias="operation") + + +class TestReport(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='TestReport', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='TestReport' + ) + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + issued: str | None = Field(None, alias="issued", serialization_alias="issued") + name: str | None = Field(None, alias="name", serialization_alias="name") + participant: PyList[TestReportParticipant] | None = Field(None, alias="participant", serialization_alias="participant") + result: Literal["pass", "fail", "pending"] = Field(alias="result", serialization_alias="result") + score: float | None = Field(None, alias="score", serialization_alias="score") + setup: TestReportSetup | None = Field(None, alias="setup", serialization_alias="setup") + status: Literal["completed", "in-progress", "waiting", "stopped", "entered-in-error"] = Field(alias="status", serialization_alias="status") + teardown: TestReportTeardown | None = Field(None, alias="teardown", serialization_alias="teardown") + test: PyList[TestReportTest] | None = Field(None, alias="test", serialization_alias="test") + tester: str | None = Field(None, alias="tester", serialization_alias="tester") + test_script: Reference = Field(alias="testScript", serialization_alias="testScript") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> TestReport: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/test_script.py b/examples/python/generated/hl7_fhir_r4_core/test_script.py new file mode 100644 index 000000000..24cc6ecb1 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/test_script.py @@ -0,0 +1,182 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Coding, ContactDetail, Identifier, Reference, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class TestScriptDestination(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + index: int = Field(alias="index", serialization_alias="index") + profile: Coding = Field(alias="profile", serialization_alias="profile") + +class TestScriptFixture(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + autocreate: bool = Field(alias="autocreate", serialization_alias="autocreate") + autodelete: bool = Field(alias="autodelete", serialization_alias="autodelete") + resource: Reference | None = Field(None, alias="resource", serialization_alias="resource") + +class TestScriptMetadata(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + capability: PyList[TestScriptMetadataCapability] = Field(alias="capability", serialization_alias="capability") + link: PyList[TestScriptMetadataLink] | None = Field(None, alias="link", serialization_alias="link") + +class TestScriptMetadataCapability(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + capabilities: str = Field(alias="capabilities", serialization_alias="capabilities") + description: str | None = Field(None, alias="description", serialization_alias="description") + destination: int | None = Field(None, alias="destination", serialization_alias="destination") + link: PyList[str] | None = Field(None, alias="link", serialization_alias="link") + origin: PyList[int] | None = Field(None, alias="origin", serialization_alias="origin") + required: bool = Field(alias="required", serialization_alias="required") + validated: bool = Field(alias="validated", serialization_alias="validated") + +class TestScriptMetadataLink(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + description: str | None = Field(None, alias="description", serialization_alias="description") + url: str = Field(alias="url", serialization_alias="url") + +class TestScriptOrigin(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + index: int = Field(alias="index", serialization_alias="index") + profile: Coding = Field(alias="profile", serialization_alias="profile") + +class TestScriptSetup(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + action: PyList[TestScriptSetupAction] = Field(alias="action", serialization_alias="action") + +class TestScriptSetupAction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + assert_: TestScriptSetupActionAssert | None = Field(None, alias="assert", serialization_alias="assert") + operation: TestScriptSetupActionOperation | None = Field(None, alias="operation", serialization_alias="operation") + +class TestScriptSetupActionAssert(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + compare_to_source_expression: str | None = Field(None, alias="compareToSourceExpression", serialization_alias="compareToSourceExpression") + compare_to_source_id: str | None = Field(None, alias="compareToSourceId", serialization_alias="compareToSourceId") + compare_to_source_path: str | None = Field(None, alias="compareToSourcePath", serialization_alias="compareToSourcePath") + content_type: str | None = Field(None, alias="contentType", serialization_alias="contentType") + description: str | None = Field(None, alias="description", serialization_alias="description") + direction: Literal["response", "request"] | None = Field(None, alias="direction", serialization_alias="direction") + expression: str | None = Field(None, alias="expression", serialization_alias="expression") + header_field: str | None = Field(None, alias="headerField", serialization_alias="headerField") + label: str | None = Field(None, alias="label", serialization_alias="label") + minimum_id: str | None = Field(None, alias="minimumId", serialization_alias="minimumId") + navigation_links: bool | None = Field(None, alias="navigationLinks", serialization_alias="navigationLinks") + operator: Literal["equals", "notEquals", "in", "notIn", "greaterThan", "lessThan", "empty", "notEmpty", "contains", "notContains", "eval"] | None = Field(None, alias="operator", serialization_alias="operator") + path: str | None = Field(None, alias="path", serialization_alias="path") + request_method: Literal["delete", "get", "options", "patch", "post", "put", "head"] | None = Field(None, alias="requestMethod", serialization_alias="requestMethod") + request_url: str | None = Field(None, alias="requestURL", serialization_alias="requestURL") + resource: str | None = Field(None, alias="resource", serialization_alias="resource") + response: Literal["okay", "created", "noContent", "notModified", "bad", "forbidden", "notFound", "methodNotAllowed", "conflict", "gone", "preconditionFailed", "unprocessable"] | None = Field(None, alias="response", serialization_alias="response") + response_code: str | None = Field(None, alias="responseCode", serialization_alias="responseCode") + source_id: str | None = Field(None, alias="sourceId", serialization_alias="sourceId") + validate_profile_id: str | None = Field(None, alias="validateProfileId", serialization_alias="validateProfileId") + value: str | None = Field(None, alias="value", serialization_alias="value") + warning_only: bool = Field(alias="warningOnly", serialization_alias="warningOnly") + +class TestScriptSetupActionOperation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + accept: str | None = Field(None, alias="accept", serialization_alias="accept") + content_type: str | None = Field(None, alias="contentType", serialization_alias="contentType") + description: str | None = Field(None, alias="description", serialization_alias="description") + destination: int | None = Field(None, alias="destination", serialization_alias="destination") + encode_request_url: bool = Field(alias="encodeRequestUrl", serialization_alias="encodeRequestUrl") + label: str | None = Field(None, alias="label", serialization_alias="label") + method: Literal["delete", "get", "options", "patch", "post", "put", "head"] | None = Field(None, alias="method", serialization_alias="method") + origin: int | None = Field(None, alias="origin", serialization_alias="origin") + params: str | None = Field(None, alias="params", serialization_alias="params") + request_header: PyList[TestScriptSetupActionOperationRequestHeader] | None = Field(None, alias="requestHeader", serialization_alias="requestHeader") + request_id: str | None = Field(None, alias="requestId", serialization_alias="requestId") + resource: str | None = Field(None, alias="resource", serialization_alias="resource") + response_id: str | None = Field(None, alias="responseId", serialization_alias="responseId") + source_id: str | None = Field(None, alias="sourceId", serialization_alias="sourceId") + target_id: str | None = Field(None, alias="targetId", serialization_alias="targetId") + type: Coding | None = Field(None, alias="type", serialization_alias="type") + url: str | None = Field(None, alias="url", serialization_alias="url") + +class TestScriptSetupActionOperationRequestHeader(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + field: str = Field(alias="field", serialization_alias="field") + value: str = Field(alias="value", serialization_alias="value") + +class TestScriptTeardown(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + action: PyList[TestScriptTeardownAction] = Field(alias="action", serialization_alias="action") + +class TestScriptTeardownAction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + operation: TestScriptSetupActionOperation = Field(alias="operation", serialization_alias="operation") + +class TestScriptTest(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + action: PyList[TestScriptTestAction] = Field(alias="action", serialization_alias="action") + description: str | None = Field(None, alias="description", serialization_alias="description") + name: str | None = Field(None, alias="name", serialization_alias="name") + +class TestScriptTestAction(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + assert_: TestScriptSetupActionAssert | None = Field(None, alias="assert", serialization_alias="assert") + operation: TestScriptSetupActionOperation | None = Field(None, alias="operation", serialization_alias="operation") + +class TestScriptVariable(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + default_value: str | None = Field(None, alias="defaultValue", serialization_alias="defaultValue") + description: str | None = Field(None, alias="description", serialization_alias="description") + expression: str | None = Field(None, alias="expression", serialization_alias="expression") + header_field: str | None = Field(None, alias="headerField", serialization_alias="headerField") + hint: str | None = Field(None, alias="hint", serialization_alias="hint") + name: str = Field(alias="name", serialization_alias="name") + path: str | None = Field(None, alias="path", serialization_alias="path") + source_id: str | None = Field(None, alias="sourceId", serialization_alias="sourceId") + + +class TestScript(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='TestScript', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='TestScript' + ) + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + destination: PyList[TestScriptDestination] | None = Field(None, alias="destination", serialization_alias="destination") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + fixture: PyList[TestScriptFixture] | None = Field(None, alias="fixture", serialization_alias="fixture") + identifier: Identifier | None = Field(None, alias="identifier", serialization_alias="identifier") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + metadata: TestScriptMetadata | None = Field(None, alias="metadata", serialization_alias="metadata") + name: str = Field(alias="name", serialization_alias="name") + origin: PyList[TestScriptOrigin] | None = Field(None, alias="origin", serialization_alias="origin") + profile: PyList[Reference] | None = Field(None, alias="profile", serialization_alias="profile") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + setup: TestScriptSetup | None = Field(None, alias="setup", serialization_alias="setup") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + teardown: TestScriptTeardown | None = Field(None, alias="teardown", serialization_alias="teardown") + test: PyList[TestScriptTest] | None = Field(None, alias="test", serialization_alias="test") + title: str | None = Field(None, alias="title", serialization_alias="title") + url: str = Field(alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + variable: PyList[TestScriptVariable] | None = Field(None, alias="variable", serialization_alias="variable") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> TestScript: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/value_set.py b/examples/python/generated/hl7_fhir_r4_core/value_set.py new file mode 100644 index 000000000..1199d1f96 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/value_set.py @@ -0,0 +1,115 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Coding, ContactDetail, Identifier, UsageContext +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class ValueSetCompose(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + exclude: PyList[ValueSetComposeInclude] | None = Field(None, alias="exclude", serialization_alias="exclude") + inactive: bool | None = Field(None, alias="inactive", serialization_alias="inactive") + include: PyList[ValueSetComposeInclude] = Field(alias="include", serialization_alias="include") + locked_date: str | None = Field(None, alias="lockedDate", serialization_alias="lockedDate") + +class ValueSetComposeInclude(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + concept: PyList[ValueSetComposeIncludeConcept] | None = Field(None, alias="concept", serialization_alias="concept") + filter: PyList[ValueSetComposeIncludeFilter] | None = Field(None, alias="filter", serialization_alias="filter") + system: str | None = Field(None, alias="system", serialization_alias="system") + value_set: PyList[str] | None = Field(None, alias="valueSet", serialization_alias="valueSet") + version: str | None = Field(None, alias="version", serialization_alias="version") + +class ValueSetComposeIncludeConcept(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + code: str = Field(alias="code", serialization_alias="code") + designation: PyList[ValueSetComposeIncludeConceptDesignation] | None = Field(None, alias="designation", serialization_alias="designation") + display: str | None = Field(None, alias="display", serialization_alias="display") + +class ValueSetComposeIncludeConceptDesignation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + language: str | None = Field(None, alias="language", serialization_alias="language") + use: Coding | None = Field(None, alias="use", serialization_alias="use") + value: str = Field(alias="value", serialization_alias="value") + +class ValueSetComposeIncludeFilter(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + op: Literal["=", "is-a", "descendent-of", "is-not-a", "regex", "in", "not-in", "generalizes", "exists"] = Field(alias="op", serialization_alias="op") + property: str = Field(alias="property", serialization_alias="property") + value: str = Field(alias="value", serialization_alias="value") + +class ValueSetExpansion(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + contains: PyList[ValueSetExpansionContains] | None = Field(None, alias="contains", serialization_alias="contains") + identifier: str | None = Field(None, alias="identifier", serialization_alias="identifier") + offset: int | None = Field(None, alias="offset", serialization_alias="offset") + parameter: PyList[ValueSetExpansionParameter] | None = Field(None, alias="parameter", serialization_alias="parameter") + timestamp: str = Field(alias="timestamp", serialization_alias="timestamp") + total: int | None = Field(None, alias="total", serialization_alias="total") + +class ValueSetExpansionContains(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + abstract: bool | None = Field(None, alias="abstract", serialization_alias="abstract") + code: str | None = Field(None, alias="code", serialization_alias="code") + contains: PyList[ValueSetExpansionContains] | None = Field(None, alias="contains", serialization_alias="contains") + designation: PyList[ValueSetComposeIncludeConceptDesignation] | None = Field(None, alias="designation", serialization_alias="designation") + display: str | None = Field(None, alias="display", serialization_alias="display") + inactive: bool | None = Field(None, alias="inactive", serialization_alias="inactive") + system: str | None = Field(None, alias="system", serialization_alias="system") + version: str | None = Field(None, alias="version", serialization_alias="version") + +class ValueSetExpansionParameter(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + name: str = Field(alias="name", serialization_alias="name") + value_boolean: bool | None = Field(None, alias="valueBoolean", serialization_alias="valueBoolean") + value_code: str | None = Field(None, alias="valueCode", serialization_alias="valueCode") + value_date_time: str | None = Field(None, alias="valueDateTime", serialization_alias="valueDateTime") + value_decimal: float | None = Field(None, alias="valueDecimal", serialization_alias="valueDecimal") + value_integer: int | None = Field(None, alias="valueInteger", serialization_alias="valueInteger") + value_string: str | None = Field(None, alias="valueString", serialization_alias="valueString") + value_uri: str | None = Field(None, alias="valueUri", serialization_alias="valueUri") + + +class ValueSet(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='ValueSet', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='ValueSet' + ) + compose: ValueSetCompose | None = Field(None, alias="compose", serialization_alias="compose") + contact: PyList[ContactDetail] | None = Field(None, alias="contact", serialization_alias="contact") + copyright: str | None = Field(None, alias="copyright", serialization_alias="copyright") + date: str | None = Field(None, alias="date", serialization_alias="date") + description: str | None = Field(None, alias="description", serialization_alias="description") + expansion: ValueSetExpansion | None = Field(None, alias="expansion", serialization_alias="expansion") + experimental: bool | None = Field(None, alias="experimental", serialization_alias="experimental") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + immutable: bool | None = Field(None, alias="immutable", serialization_alias="immutable") + jurisdiction: PyList[CodeableConcept] | None = Field(None, alias="jurisdiction", serialization_alias="jurisdiction") + name: str | None = Field(None, alias="name", serialization_alias="name") + publisher: str | None = Field(None, alias="publisher", serialization_alias="publisher") + purpose: str | None = Field(None, alias="purpose", serialization_alias="purpose") + status: Literal["draft", "active", "retired", "unknown"] = Field(alias="status", serialization_alias="status") + title: str | None = Field(None, alias="title", serialization_alias="title") + url: str | None = Field(None, alias="url", serialization_alias="url") + use_context: PyList[UsageContext] | None = Field(None, alias="useContext", serialization_alias="useContext") + version: str | None = Field(None, alias="version", serialization_alias="version") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> ValueSet: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/verification_result.py b/examples/python/generated/hl7_fhir_r4_core/verification_result.py new file mode 100644 index 000000000..bcc60b17f --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/verification_result.py @@ -0,0 +1,74 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + BackboneElement, CodeableConcept, Reference, Signature, Timing +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class VerificationResultAttestation(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + communication_method: CodeableConcept | None = Field(None, alias="communicationMethod", serialization_alias="communicationMethod") + date: str | None = Field(None, alias="date", serialization_alias="date") + on_behalf_of: Reference | None = Field(None, alias="onBehalfOf", serialization_alias="onBehalfOf") + proxy_identity_certificate: str | None = Field(None, alias="proxyIdentityCertificate", serialization_alias="proxyIdentityCertificate") + proxy_signature: Signature | None = Field(None, alias="proxySignature", serialization_alias="proxySignature") + source_identity_certificate: str | None = Field(None, alias="sourceIdentityCertificate", serialization_alias="sourceIdentityCertificate") + source_signature: Signature | None = Field(None, alias="sourceSignature", serialization_alias="sourceSignature") + who: Reference | None = Field(None, alias="who", serialization_alias="who") + +class VerificationResultPrimarySource(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + can_push_updates: CodeableConcept | None = Field(None, alias="canPushUpdates", serialization_alias="canPushUpdates") + communication_method: PyList[CodeableConcept] | None = Field(None, alias="communicationMethod", serialization_alias="communicationMethod") + push_type_available: PyList[CodeableConcept] | None = Field(None, alias="pushTypeAvailable", serialization_alias="pushTypeAvailable") + type: PyList[CodeableConcept] | None = Field(None, alias="type", serialization_alias="type") + validation_date: str | None = Field(None, alias="validationDate", serialization_alias="validationDate") + validation_status: CodeableConcept | None = Field(None, alias="validationStatus", serialization_alias="validationStatus") + who: Reference | None = Field(None, alias="who", serialization_alias="who") + +class VerificationResultValidator(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + attestation_signature: Signature | None = Field(None, alias="attestationSignature", serialization_alias="attestationSignature") + identity_certificate: str | None = Field(None, alias="identityCertificate", serialization_alias="identityCertificate") + organization: Reference = Field(alias="organization", serialization_alias="organization") + + +class VerificationResult(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='VerificationResult', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='VerificationResult' + ) + attestation: VerificationResultAttestation | None = Field(None, alias="attestation", serialization_alias="attestation") + failure_action: CodeableConcept | None = Field(None, alias="failureAction", serialization_alias="failureAction") + frequency: Timing | None = Field(None, alias="frequency", serialization_alias="frequency") + last_performed: str | None = Field(None, alias="lastPerformed", serialization_alias="lastPerformed") + need: CodeableConcept | None = Field(None, alias="need", serialization_alias="need") + next_scheduled: str | None = Field(None, alias="nextScheduled", serialization_alias="nextScheduled") + primary_source: PyList[VerificationResultPrimarySource] | None = Field(None, alias="primarySource", serialization_alias="primarySource") + status: Literal["attested", "validated", "in-process", "req-revalid", "val-fail", "reval-fail"] = Field(alias="status", serialization_alias="status") + status_date: str | None = Field(None, alias="statusDate", serialization_alias="statusDate") + target: PyList[Reference] | None = Field(None, alias="target", serialization_alias="target") + target_location: PyList[str] | None = Field(None, alias="targetLocation", serialization_alias="targetLocation") + validation_process: PyList[CodeableConcept] | None = Field(None, alias="validationProcess", serialization_alias="validationProcess") + validation_type: CodeableConcept | None = Field(None, alias="validationType", serialization_alias="validationType") + validator: PyList[VerificationResultValidator] | None = Field(None, alias="validator", serialization_alias="validator") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> VerificationResult: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/hl7_fhir_r4_core/vision_prescription.py b/examples/python/generated/hl7_fhir_r4_core/vision_prescription.py new file mode 100644 index 000000000..aab3ec862 --- /dev/null +++ b/examples/python/generated/hl7_fhir_r4_core/vision_prescription.py @@ -0,0 +1,63 @@ +# WARNING: This file is autogenerated by @atomic-ehr/codegen. +# GitHub: https://github.com/atomic-ehr/codegen +# Any manual changes made to this file may be overwritten. + +from __future__ import annotations +from pydantic import BaseModel, ConfigDict, Field, PositiveInt +from typing import List as PyList, Literal + +from generated.hl7_fhir_r4_core.base import (\ + Annotation, BackboneElement, CodeableConcept, Identifier, Quantity, Reference +) +from generated.hl7_fhir_r4_core.domain_resource import DomainResource +from generated.hl7_fhir_r4_core.resource_families import DomainResourceFamily + + +class VisionPrescriptionLensSpecification(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + add: float | None = Field(None, alias="add", serialization_alias="add") + axis: int | None = Field(None, alias="axis", serialization_alias="axis") + back_curve: float | None = Field(None, alias="backCurve", serialization_alias="backCurve") + brand: str | None = Field(None, alias="brand", serialization_alias="brand") + color: str | None = Field(None, alias="color", serialization_alias="color") + cylinder: float | None = Field(None, alias="cylinder", serialization_alias="cylinder") + diameter: float | None = Field(None, alias="diameter", serialization_alias="diameter") + duration: Quantity | None = Field(None, alias="duration", serialization_alias="duration") + eye: Literal["right", "left"] = Field(alias="eye", serialization_alias="eye") + note: PyList[Annotation] | None = Field(None, alias="note", serialization_alias="note") + power: float | None = Field(None, alias="power", serialization_alias="power") + prism: PyList[VisionPrescriptionLensSpecificationPrism] | None = Field(None, alias="prism", serialization_alias="prism") + product: CodeableConcept = Field(alias="product", serialization_alias="product") + sphere: float | None = Field(None, alias="sphere", serialization_alias="sphere") + +class VisionPrescriptionLensSpecificationPrism(BackboneElement): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + amount: float = Field(alias="amount", serialization_alias="amount") + base: Literal["up", "down", "in", "out"] = Field(alias="base", serialization_alias="base") + + +class VisionPrescription(DomainResource): + model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="forbid") + resource_type: str = Field( + default='VisionPrescription', + alias='resourceType', + serialization_alias='resourceType', + frozen=True, + pattern='VisionPrescription' + ) + created: str = Field(alias="created", serialization_alias="created") + date_written: str = Field(alias="dateWritten", serialization_alias="dateWritten") + encounter: Reference | None = Field(None, alias="encounter", serialization_alias="encounter") + identifier: PyList[Identifier] | None = Field(None, alias="identifier", serialization_alias="identifier") + lens_specification: PyList[VisionPrescriptionLensSpecification] = Field(alias="lensSpecification", serialization_alias="lensSpecification") + patient: Reference = Field(alias="patient", serialization_alias="patient") + prescriber: Reference = Field(alias="prescriber", serialization_alias="prescriber") + status: Literal["active", "cancelled", "draft", "entered-in-error"] = Field(alias="status", serialization_alias="status") + + def to_json(self, indent: int | None = None) -> str: + return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent) + + @classmethod + def from_json(cls, json: str) -> VisionPrescription: + return cls.model_validate_json(json) + diff --git a/examples/python/generated/requirements.txt b/examples/python/generated/requirements.txt new file mode 100644 index 000000000..82b6749a5 --- /dev/null +++ b/examples/python/generated/requirements.txt @@ -0,0 +1,5 @@ +requests>=2.32.0,<3.0.0 +pytest>=8.3.0,<9.0.0 +pydantic>=2.11.0,<3.0.0 +mypy>=1.9.0,<2.0.0 +types-requests>=2.32.0,<3.0.0 \ No newline at end of file diff --git a/examples/python/test_sdk.py b/examples/python/test_sdk.py new file mode 100644 index 000000000..0b373fa04 --- /dev/null +++ b/examples/python/test_sdk.py @@ -0,0 +1,219 @@ +import pytest +from typing import Iterator + +from pydantic import ValidationError + +from generated.hl7_fhir_r4_core.patient import Patient +from generated.hl7_fhir_r4_core import HumanName +from client import Client, Auth, AuthCredentials +from generated.hl7_fhir_r4_core.bundle import Bundle + +FHIR_SERVER_URL = "http://localhost:8080/fhir" +USERNAME = "root" +PASSWORD = ( + "" # get actual value from docker-compose.yaml: BOX_ROOT_CLIENT_SECRET +) + + +@pytest.fixture(scope="module") +def client() -> Client: + return Client( + base_url=FHIR_SERVER_URL, + auth=Auth( + method="basic", + credentials=AuthCredentials( + username=USERNAME, + password=PASSWORD, + ), + ), + ) + + +@pytest.fixture +def created_patient(client: Client) -> Iterator[Patient]: + patient = client.create( + Patient( + name=[HumanName(given=["Test"], family="Patient")], + gender="female", + birth_date="1980-01-01", + ) + ) + # This fixture has module scope, so we yield the result for all tests to use + yield patient + try: + if patient.id is not None: + client.delete("Patient", patient.id) + except Exception: + pass + + +def test_create_patient(client: Client) -> None: + new_patient = Patient( + name=[HumanName(given=["Create"], family="Test")], + gender="female", + birth_date="1980-01-01", + ) + + created = client.create(new_patient) + assert created.id is not None + assert created.name is not None + assert created.name[0].family == "Test" + assert created.gender == "female" + assert created.birth_date == "1980-01-01" + + client.delete("Patient", created.id) + + +def test_read_patient(client: Client, created_patient: Patient) -> None: + assert created_patient.name is not None + assert created_patient.id is not None + read_patient = client.read(Patient, created_patient.id) + + assert read_patient.id == created_patient.id + assert read_patient.name is not None + assert read_patient.name[0].family == created_patient.name[0].family + assert read_patient.gender == created_patient.gender + + +def test_update_patient(client: Client, created_patient: Patient) -> None: + assert created_patient.id is not None + patient_to_update = client.read(Patient, created_patient.id) + + assert patient_to_update.id == created_patient.id + assert patient_to_update.gender == "female" + assert patient_to_update.name is not None + assert patient_to_update.name[0].family == "Patient" + + patient_to_update.name[0].family = "UpdatedFamily" + patient_to_update.name[0].given = ["UpdatedGiven"] + patient_to_update.gender = "male" + updated_patient = client.update(patient_to_update) + + assert updated_patient.id == created_patient.id # ID should not change + assert updated_patient.gender == "male" # Gender should be updated + assert updated_patient.name is not None + assert ( + updated_patient.name[0].family == "UpdatedFamily" + ) # Family name should be updated + assert updated_patient.name[0].given == [ + "UpdatedGiven" + ] # Given name should be updated + + assert created_patient.id is not None + re_read_patient = client.read(Patient, created_patient.id) + assert re_read_patient.gender == "male" + assert re_read_patient.name is not None + assert re_read_patient.name[0].family == "UpdatedFamily" + assert re_read_patient.name[0].given == ["UpdatedGiven"] + + +def test_search_patient(client: Client, created_patient: Patient) -> None: + search_params = {"name": "Patient"} + result_bundle = client.search(Patient, search_params) + assert result_bundle is not None + assert result_bundle.total is not None + assert result_bundle.total > 0, "No patients found in search" + + assert result_bundle.entry is not None + foundResource = None + for entry in result_bundle.entry or []: + assert entry.resource is not None + if entry.resource.id == created_patient.id: + foundResource = entry.resource + break + assert foundResource is not None, ( + f"Patient with ID {created_patient.id} not found in search results" + ) + assert type(foundResource) is Patient + assert foundResource.gender == created_patient.gender + + +def test_wrong_resource_type() -> None: + json = """ + { + "resourceType" : "Bundle", + "id" : "bundle-example", + "type" : "searchset", + "total" : 3, + "link" : [{ + "relation" : "self", + "url" : "https://example.com/base/MedicationRequest?patient=347&_include=MedicationRequest.medication&_count=2" + }, + { + "relation" : "next", + "url" : "https://example.com/base/MedicationRequest?patient=347&searchId=ff15fd40-ff71-4b48-b366-09c706bed9d0&page=2" + }], + "entry" : [{ + "fullUrl" : "https://example.com/base/MedicationRequest/3123", + "resource" : { + "resourceType" : "Weird_Patient", + "id" : "3123" + }, + "search" : { + "mode" : "match", + "score" : 1 + } + } + ] + } + """ + with pytest.raises(ValidationError): + Bundle.from_json(json) + + +def test_wrong_fields() -> None: + json = """ + { + "resourceType" : "Bundle", + "id" : "bundle-example", + "type" : "searchset", + "total" : 3, + "link" : [{ + "relation" : "self", + "url" : "https://example.com/base/MedicationRequest?patient=347&_include=MedicationRequest.medication&_count=2" + }, + { + "relation" : "next", + "url" : "https://example.com/base/MedicationRequest?patient=347&searchId=ff15fd40-ff71-4b48-b366-09c706bed9d0&page=2" + }], + "entry" : [{ + "fullUrl" : "https://example.com/base/MedicationRequest/3123", + "resource" : { + "resourceType" : "Patient", + "id" : "3123" + "very_wrong_field" : "WRONG" + }, + "search" : { + "mode" : "match", + "score" : 1 + } + } + ] + } + """ + with pytest.raises(ValidationError): + Bundle.from_json(json) + + +def test_delete_patient(client: Client) -> None: + delete_patient = Patient( + name=[HumanName(given=["Delete"], family="Test")], + gender="other", + ) + + created = client.create(delete_patient) + assert created.id is not None + client.delete("Patient", created.id) + with pytest.raises(Exception) as _excinfo: + client.read(Patient, created.id) + + +def test_to_from_json() -> None: + p = Patient( + name=[HumanName(given=["Test"], family="Patient")], + gender="female", + birth_date="1980-01-01", + ) + json = p.to_json(indent=2) + p2 = Patient.from_json(json) + assert p == p2 diff --git a/examples/python/tsconfig.json b/examples/python/tsconfig.json new file mode 100644 index 000000000..27663aaca --- /dev/null +++ b/examples/python/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "../../tsconfig.json", + "include": [ + "./" + ] +} diff --git a/src/api/builder.ts b/src/api/builder.ts index e40453f9e..b531fe692 100644 --- a/src/api/builder.ts +++ b/src/api/builder.ts @@ -9,11 +9,18 @@ import * as fs from "node:fs"; import * as afs from "node:fs/promises"; import * as Path from "node:path"; import { CanonicalManager } from "@atomic-ehr/fhir-canonical-manager"; -import { CSharp } from "@root/api/writer-generator/csharp/csharp"; +import { CSharp } from "@root/api/writer-generator/csharp/csharp.ts"; +import { Python, type PythonGeneratorOptions } from "@root/api/writer-generator/python/python.ts"; +import { generateTypeSchemas } from "@root/typeschema"; import { registerFromManager } from "@root/typeschema/register"; import { mkTypeSchemaIndex, type TreeShake, type TypeSchemaIndex, treeShake } from "@root/typeschema/utils"; -import { generateTypeSchemas } from "@typeschema/index"; -import { extractNameFromCanonical, packageMetaToFhir, packageMetaToNpm, type TypeSchema } from "@typeschema/types"; +import { + extractNameFromCanonical, + npmToPackageMeta, + packageMetaToFhir, + packageMetaToNpm, + type TypeSchema, +} from "@typeschema/types"; import type { TypeSchemaConfig } from "../config"; import { CodegenLogger, createLogger } from "../utils/codegen-logger"; import { TypeScript, type TypeScriptOptions } from "./writer-generator/typescript"; @@ -251,6 +258,31 @@ export class APIBuilder { return this; } + python(userOptions: Partial): APIBuilder { + const defaultWriterOpts: WriterOptions = { + logger: this.logger, + outputDir: this.options.outputDir, + tabSize: 4, + withDebugComment: false, + commentLinePrefix: "#", + }; + + const defaultPyOpts: PythonGeneratorOptions = { + ...defaultWriterOpts, + packageName: "generated", + }; + + const opts: PythonGeneratorOptions = { + ...defaultPyOpts, + ...Object.fromEntries(Object.entries(userOptions).filter(([_, v]) => v !== undefined)), + }; + + const generator = new Python(opts); + this.generators.set("python", generator); + this.logger.debug(`Configured python generator`); + return this; + } + csharp(namespace: string, staticSourceDir?: string | undefined): APIBuilder { const generator = new CSharp({ outputDir: Path.join(this.options.outputDir, "/types"), diff --git a/src/api/writer-generator/python/python.ts b/src/api/writer-generator/python/python.ts new file mode 100644 index 000000000..80ee76319 --- /dev/null +++ b/src/api/writer-generator/python/python.ts @@ -0,0 +1,680 @@ +import fs from "node:fs"; +import * as Path from "node:path"; +import { + camelCase, + capitalCase, + kebabCase, + pascalCase, + snakeCase, + uppercaseFirstLetterOfEach, +} from "@root/api/writer-generator/utils"; +import { Writer, type WriterOptions } from "@root/api/writer-generator/writer.ts"; +import { groupByPackages, type TypeSchemaIndex } from "@root/typeschema/utils"; +import type { Field, Identifier, RegularTypeSchema } from "@typeschema/types.ts"; +import { pythonUtils } from "./utils.ts"; + +const PRIMITIVE_TYPE_MAP: Record = { + boolean: "bool", + instant: "str", + time: "str", + date: "str", + dateTime: "str", + decimal: "float", + integer: "int", + unsignedInt: "int", + positiveInt: "PositiveInt", + integer64: "int", + base64Binary: "str", + uri: "str", + url: "str", + canonical: "str", + oid: "str", + uuid: "str", + string: "str", + code: "str", + markdown: "str", + id: "str", + xhtml: "str", +}; + +const AVAILABLE_STRING_FORMATS: Record string> = { + SnakeCase: snakeCase, + PascalCase: pascalCase, + CamelCase: camelCase, + CapitalCase: capitalCase, + KebabCase: kebabCase, +}; + +const PYTHON_KEYWORDS = new Set([ + "False", + "None", + "True", + "and", + "as", + "assert", + "async", + "await", + "break", + "class", + "continue", + "def", + "del", + "elif", + "else", + "except", + "finally", + "for", + "from", + "global", + "if", + "import", + "in", + "is", + "lambda", + "nonlocal", + "not", + "or", + "pass", + "raise", + "return", + "try", + "while", + "with", + "yield", + "List", +]); + +const MAX_IMPORT_LINE_LENGTH = 100; + +export interface PythonGeneratorOptions extends WriterOptions { + allowExtraFields?: boolean; + staticDir?: string; + packageName?: string; + fieldFormat?: string; +} + +interface ImportGroup { + [packageName: string]: string[]; +} + +interface FieldInfo { + name: string; + type: string; + defaultValue: string; +} + +const fixReservedWords = (name: string): string => { + return PYTHON_KEYWORDS.has(name) ? `${name}_` : name; +}; + +const injectSuperClasses = (name: string): string[] => { + return name === "Resource" || name === "Element" ? ["BaseModel"] : []; +}; + +const canonicalToName = (canonical: string | undefined, dropFragment = true) => { + if (!canonical) return undefined; + let localName = canonical.split("/").pop(); + if (!localName) return undefined; + if (dropFragment && localName.includes("#")) { + localName = localName.split("#")[0]; + } + if (!localName) return undefined; + if (/^\d/.test(localName)) { + localName = `number_${localName}`; + } + return snakeCase(localName); +}; + +const deriveResourceName = (id: Identifier): string => { + if (id.kind === "nested") { + const url = id.url; + const path = canonicalToName(url, false); + if (!path) return ""; + const [resourceName, fragment] = path.split("#"); + const name = uppercaseFirstLetterOfEach((fragment ?? "").split(".")).join(""); + return pascalCase([resourceName, name].join("")); + } + return pascalCase(id.name); +}; + +type TypeSchemaPackageGroups = { + groupedResources: Record; + groupedComplexTypes: Record; +}; + +export class Python extends Writer { + private readonly allowExtraFields: boolean; + private readonly helper: pythonUtils; + private readonly rootPackage: string; + private readonly staticDir: string | undefined; + private readonly nameFormatFunction: (name: string) => string; + + constructor(options: PythonGeneratorOptions) { + super({ + ...options, + }); + this.allowExtraFields = options.allowExtraFields || false; + this.helper = new pythonUtils(); + this.staticDir = options.staticDir || undefined; + this.rootPackage = options.packageName || "generated"; + this.nameFormatFunction = this.getFieldFormatFunction(options.fieldFormat); + } + + override async generate(tsIndex: TypeSchemaIndex): Promise { + const groups: TypeSchemaPackageGroups = { + groupedComplexTypes: groupByPackages(tsIndex.collectComplexTypes()), + groupedResources: groupByPackages(tsIndex.collectResources()), + }; + this.generateRootPackages(groups); + this.generateSDKPackages(groups); + } + + private generateRootPackages(groups: TypeSchemaPackageGroups): void { + this.generateRootInitFile(groups); + this.copyStaticFiles(); + } + + private generateSDKPackages(groups: TypeSchemaPackageGroups): void { + this.generateComplexTypesPackages(groups.groupedComplexTypes); + this.generateResourcePackages(groups); + } + + private generateComplexTypesPackages(groupedComplexTypes: Record): void { + for (const [packageName, packageComplexTypes] of Object.entries(groupedComplexTypes)) { + this.cd(`/${snakeCase(packageName)}`, () => { + this.generateBasePy(packageComplexTypes); + }); + } + } + + private generateResourcePackages(groups: TypeSchemaPackageGroups): void { + for (const [packageName, packageResources] of Object.entries(groups.groupedResources)) { + this.cd(`/${snakeCase(packageName)}`, () => { + this.generateResourcePackageContent( + packageName, + packageResources, + groups.groupedComplexTypes[packageName] || [], + ); + }); + } + } + + private generateResourcePackageContent( + packageName: string, + packageResources: RegularTypeSchema[], + packageComplexTypes: RegularTypeSchema[], + ): void { + const pyPackageName = this.pyFhirPackageByName(packageName); + + this.generateResourcePackageInit(pyPackageName, packageResources, packageComplexTypes); + this.generateResourceFamilies(packageResources); + + for (const schema of packageResources) { + this.generateResourceModule(schema); + } + } + + private generateRootInitFile(groups: TypeSchemaPackageGroups): void { + this.cd("/", () => { + this.cat("__init__.py", () => { + this.generateDisclaimer(); + const pydanticModels: string[] = this.collectAndImportAllModels(groups); + this.generateModelRebuilds(pydanticModels); + }); + }); + } + + private collectAndImportAllModels(groups: TypeSchemaPackageGroups): string[] { + const models: string[] = []; + + for (const packageName of Object.keys(groups.groupedResources)) { + const fullPyPackageName = this.pyFhirPackageByName(packageName); + models.push(...this.importComplexTypes(fullPyPackageName, groups.groupedComplexTypes[packageName])); + models.push(...this.importResources(fullPyPackageName, false, groups.groupedResources[packageName])); + } + this.line(); + + return models; + } + + private generateModelRebuilds(models: string[]): void { + for (const modelName of models.sort()) { + this.line(`${modelName}.model_rebuild()`); + } + } + + private generateBasePy(packageComplexTypes: RegularTypeSchema[]): void { + this.cat("base.py", () => { + this.generateDisclaimer(); + this.generateDefaultImports(); + this.line(); + this.generateComplexTypes(packageComplexTypes); + this.line(); + }); + } + + private generateComplexTypes(complexTypes: RegularTypeSchema[]): void { + for (const schema of this.helper.sortSchemasByDeps(complexTypes)) { + this.generateNestedTypes(schema); + this.line(); + this.generateType(schema); + } + } + + private generateResourcePackageInit( + fullPyPackageName: string, + packageResources: RegularTypeSchema[], + packageComplexTypes?: RegularTypeSchema[], + ): void { + this.cat("__init__.py", () => { + this.generateDisclaimer(); + this.importComplexTypes(fullPyPackageName, packageComplexTypes); + const allResourceNames = this.importResources(fullPyPackageName, true, packageResources); + this.line(); + this.generateExportsDeclaration(packageComplexTypes, allResourceNames); + }); + } + + private importComplexTypes(fullPyPackageName: string, packageComplexTypes?: RegularTypeSchema[]): string[] { + if (!packageComplexTypes || packageComplexTypes.length === 0) return []; + + const baseTypes = packageComplexTypes.map((t) => t.identifier.name).sort(); + this.pyImportFrom(`${fullPyPackageName}.base`, ...baseTypes); + this.line(); + + return baseTypes; + } + + private importResources( + fullPyPackageName: string, + importEmptyResources: boolean, + packageResources?: RegularTypeSchema[], + ): string[] { + if (!packageResources || packageResources.length === 0) return []; + const allResourceNames: string[] = []; + + for (const resource of packageResources) { + const names = this.importOneResource(resource, fullPyPackageName, packageResources); + if (!importEmptyResources && !resource.fields) continue; + allResourceNames.push(...names); + } + + return allResourceNames; + } + + private importOneResource( + resource: RegularTypeSchema, + fullPyPackageName: string, + packageResources: RegularTypeSchema[], + ): string[] { + const moduleName = `${fullPyPackageName}.${snakeCase(resource.identifier.name)}`; + const importNames = this.collectResourceImportNames(resource); + + this.pyImportFrom(moduleName, ...importNames); + + const names = [...importNames]; + + if (this.shouldImportResourceFamily(resource, packageResources)) { + const familyName = `${resource.identifier.name}Family`; + this.pyImportFrom(`${fullPyPackageName}.resource_families`, familyName); + } + + return names; + } + + private collectResourceImportNames(resource: RegularTypeSchema): string[] { + const names = [deriveResourceName(resource.identifier)]; + + for (const nested of resource.nested ?? []) { + const nestedName = deriveResourceName(nested.identifier); + names.push(nestedName); + } + + return names; + } + + private shouldImportResourceFamily(resource: RegularTypeSchema, packageResources: RegularTypeSchema[]): boolean { + return ( + resource.identifier.kind === "resource" && + this.helper.childrenOf(resource.identifier, packageResources).length > 0 + ); + } + + private generateExportsDeclaration( + packageComplexTypes: RegularTypeSchema[] | undefined, + allResourceNames: string[], + ): void { + this.squareBlock(["__all__", "="], () => { + const allExports = [ + ...(packageComplexTypes || []).map((t) => t.identifier.name), + ...allResourceNames, + ].sort(); + + for (const schemaName of allExports) { + this.line(`'${schemaName}',`); + } + }); + } + + private generateResourceModule(schema: RegularTypeSchema): void { + this.cat(`${snakeCase(schema.identifier.name)}.py`, () => { + this.generateDisclaimer(); + this.generateDefaultImports(); + this.line(); + this.generateDependenciesImports(schema); + this.line(); + this.generateNestedTypes(schema); + this.line(); + this.generateType(schema); + }); + } + + generateType(schema: RegularTypeSchema): void { + const className = deriveResourceName(schema.identifier); + const superClasses = this.getSuperClasses(schema); + + this.line(`class ${className}(${superClasses.join(", ")}):`); + this.indentBlock(() => { + this.generateClassBody(schema); + }); + this.line(); + } + + private getSuperClasses(schema: RegularTypeSchema): string[] { + return [...(schema.base ? [schema.base.name] : []), ...injectSuperClasses(schema.identifier.name)]; + } + + private generateClassBody(schema: RegularTypeSchema): void { + this.generateModelConfig(); + + if (!schema.fields) { + this.line("pass"); + return; + } + + if (schema.identifier.kind === "resource") { + this.generateResourceTypeField(schema); + } + + this.generateFields(schema); + + if (schema.identifier.kind === "resource") { + this.generateResourceMethods(schema); + } + } + + private generateModelConfig(): void { + const extraMode = this.allowExtraFields ? "allow" : "forbid"; + this.line(`model_config = ConfigDict(validate_by_name=True, serialize_by_alias=True, extra="${extraMode}")`); + } + + private generateResourceTypeField(schema: RegularTypeSchema): void { + this.line("resource_type: str = Field("); + this.indentBlock(() => { + this.line(`default='${schema.identifier.name}',`); + this.line(`alias='resourceType',`); + this.line(`serialization_alias='resourceType',`); + this.line("frozen=True,"); + this.line(`pattern='${schema.identifier.name}'`); + }); + this.line(")"); + } + + private generateFields(schema: RegularTypeSchema): void { + const sortedFields = Object.entries(schema.fields!).sort(([a], [b]) => a.localeCompare(b)); + + for (const [fieldName, field] of sortedFields) { + if ("choices" in field && field.choices) continue; + + const fieldInfo = this.buildFieldInfo(fieldName, field); + this.line(`${fieldInfo.name}: ${fieldInfo.type}${fieldInfo.defaultValue}`); + } + } + + private buildFieldInfo(fieldName: string, field: Field): FieldInfo { + const pyFieldName = fixReservedWords(this.nameFormatFunction(fieldName)); + const fieldType = this.determineFieldType(field); + const defaultValue = this.getFieldDefaultValue(field, fieldName); + + return { + name: pyFieldName, + type: fieldType, + defaultValue: defaultValue, + }; + } + + private determineFieldType(field: Field): string { + let fieldType = field ? this.getBaseFieldType(field) : ""; + + if ("enum" in field && field.enum) { + const s: string = field.enum.map((e: string) => `"${e}"`).join(", "); + fieldType = `Literal[${s}]`; + } + + if (field.array) { + fieldType = `PyList[${fieldType}]`; + } + + if (!field.required) { + fieldType = `${fieldType} | None`; + } + + return fieldType; + } + + private getBaseFieldType(field: Field): string { + if ("type" in field && field.type.kind === "resource") return `${field.type.name}Family`; + + if ("type" in field && field.type.kind === "nested") return deriveResourceName(field.type); + + if ("type" in field && field.type.kind === "primitive-type") + return PRIMITIVE_TYPE_MAP[field.type.name] ?? "str"; + + return "type" in field ? field.type.name : ""; + } + + private getFieldDefaultValue(field: any, fieldName: string): string { + const aliasSpec = `alias="${fieldName}", serialization_alias="${fieldName}"`; + + if (!field.required) { + return ` = Field(None, ${aliasSpec})`; + } + + return ` = Field(${aliasSpec})`; + } + + private generateResourceMethods(schema: RegularTypeSchema): void { + const className = schema.identifier.name.toString(); + + this.line(); + this.line("def to_json(self, indent: int | None = None) -> str:"); + this.line(" return self.model_dump_json(exclude_unset=True, exclude_none=True, indent=indent)"); + this.line(); + this.line("@classmethod"); + this.line(`def from_json(cls, json: str) -> ${className}:`); + this.line(" return cls.model_validate_json(json)"); + } + + generateNestedTypes(schema: RegularTypeSchema): void { + if (!schema.nested) return; + + this.line(); + for (const subtype of schema.nested) { + this.generateType(subtype); + } + } + + private generateDefaultImports(): void { + this.pyImportFrom("__future__", "annotations"); + this.pyImportFrom("pydantic", "BaseModel", "ConfigDict", "Field", "PositiveInt"); + this.pyImportFrom("typing", "List as PyList", "Literal"); + } + + private generateDependenciesImports(schema: RegularTypeSchema): void { + if (!schema.dependencies || schema.dependencies.length === 0) return; + + this.importComplexTypeDependencies(schema.dependencies); + this.importResourceDependencies(schema.dependencies); + } + + private importComplexTypeDependencies(dependencies: Identifier[]): void { + const complexTypeDeps = dependencies.filter((dep) => dep.kind === "complex-type"); + const depsByPackage = this.groupDependenciesByPackage(complexTypeDeps); + + for (const [pyPackage, names] of Object.entries(depsByPackage)) { + this.pyImportFrom(pyPackage, ...names.sort()); + } + } + + private importResourceDependencies(dependencies: Identifier[]): void { + const resourceDeps = dependencies.filter((dep) => dep.kind === "resource"); + + for (const dep of resourceDeps) { + this.pyImportType(dep); + + const familyName = `${pascalCase(dep.name)}Family`; + const familyPackage = `${this.pyFhirPackage(dep)}.resource_families`; + this.pyImportFrom(familyPackage, familyName); + } + } + + private groupDependenciesByPackage(dependencies: Identifier[]): ImportGroup { + const grouped: ImportGroup = {}; + + for (const dep of dependencies) { + const pyPackage = this.pyPackage(dep); + if (!grouped[pyPackage]) { + grouped[pyPackage] = []; + } + grouped[pyPackage].push(dep.name); + } + + return grouped; + } + + pyImportFrom(pyPackage: string, ...entities: string[]): void { + const oneLine = `from ${pyPackage} import ${entities.join(", ")}`; + + if (this.shouldUseSingleLineImport(oneLine, entities)) { + this.line(oneLine); + } else { + this.writeMultiLineImport(pyPackage, entities); + } + } + + private shouldUseSingleLineImport(oneLine: string, entities: string[]): boolean { + return oneLine.length <= MAX_IMPORT_LINE_LENGTH || entities.length === 1; + } + + private writeMultiLineImport(pyPackage: string, entities: string[]): void { + this.line(`from ${pyPackage} import (\\`); + this.indentBlock(() => { + const remaining = [...entities]; + while (remaining.length > 0) { + const line = this.buildImportLine(remaining, MAX_IMPORT_LINE_LENGTH); + this.line(line); + } + }); + this.line(")"); + } + + private pyImportType(identifier: Identifier): void { + this.pyImportFrom(this.pyPackage(identifier), pascalCase(identifier.name)); + } + + private generateResourceFamilies(packageResources: RegularTypeSchema[]): void { + const packages = this.helper.getPackages(packageResources, this.rootPackage); + const families = this.helper.getFamilies(packageResources); + const exportList = Object.keys(families); + + if (exportList.length === 0) return; + + this.buildResourceFamiliesFile(packages, families, exportList); + } + + private buildResourceFamiliesFile( + packages: string[], + families: Record, + exportList: string[], + ): void { + this.cat("resource_families.py", () => { + this.generateDisclaimer(); + this.includeResourceFamilyValidator(); + this.line(); + this.generateFamilyDefinitions(packages, families); + this.generateFamilyExports(exportList); + }); + } + + private includeResourceFamilyValidator(): void { + const path = "src/api/writer-generator/python/resource_family_validator.py"; + const content = fs.readFileSync(path, "utf-8"); + this.line(content); + } + + private generateFamilyDefinitions(packages: string[], families: Record): void { + this.line(`packages = [${packages.map((p) => `'${p}'`).join(", ")}]`); + this.line(); + + for (const [familyName, resources] of Object.entries(families)) { + this.generateFamilyDefinition(familyName, resources); + } + } + + private generateFamilyDefinition(familyName: string, resources: string[]): void { + const listName = `${familyName}_resources`; + + this.line(`${listName} = [${resources.map((r) => `'${r}'`).join(", ")}]`); + this.line(); + + this.line(`def validate_and_downcast_${familyName}(v: Any) -> Any:`); + this.line(` return validate_and_downcast(v, packages, ${listName})`); + this.line(); + + this.line(`type ${familyName} = Annotated[Any, BeforeValidator(validate_and_downcast_${familyName})]`); + this.line(); + } + + private generateFamilyExports(exportList: string[]): void { + this.line(`__all__ = [${exportList.map((e) => `'${e}'`).join(", ")}]`); + } + + private buildPyPackageName(packageName: string): string { + const parts = packageName ? [snakeCase(packageName)] : [""]; + return parts.join("."); + } + + private pyFhirPackage(identifier: Identifier): string { + return this.pyFhirPackageByName(identifier.package); + } + + private pyFhirPackageByName(name: string): string { + return [this.rootPackage, this.buildPyPackageName(name)].join("."); + } + + private pyPackage(identifier: Identifier): string { + if (identifier.kind === "complex-type") { + return `${this.pyFhirPackage(identifier)}.base`; + } + if (identifier.kind === "resource") { + return [this.pyFhirPackage(identifier), snakeCase(identifier.name)].join("."); + } + return this.pyFhirPackage(identifier); + } + + copyStaticFiles(): void { + if (!this.staticDir) return; + fs.cpSync(Path.resolve(this.staticDir), this.opts.outputDir, { recursive: true }); + } + + getFieldFormatFunction(format: string | undefined): (name: string) => string { + if (!format) { + this.logger()?.warn(`No field format specified. Defaulting to SnakeCase.`); + return snakeCase; + } else if (!AVAILABLE_STRING_FORMATS[format]) { + this.logger()?.warn(`Unknown field format '${format}'. Defaulting to SnakeCase.`); + this.logger()?.warn(`Supported formats: ${Object.keys(AVAILABLE_STRING_FORMATS).join(", ")}`); + return snakeCase; + } else return AVAILABLE_STRING_FORMATS[format]; + } +} diff --git a/src/api/writer-generator/python/resource_family_validator.py b/src/api/writer-generator/python/resource_family_validator.py new file mode 100644 index 000000000..36e069eab --- /dev/null +++ b/src/api/writer-generator/python/resource_family_validator.py @@ -0,0 +1,92 @@ +import re +import importlib +import importlib.util +from typing import Any, Annotated, List + +from pydantic import BeforeValidator, BaseModel, ValidationError +from pydantic_core import ValidationError as PydanticCoreValidationError + + +def to_snake_case(name: str) -> str: + s = re.sub(r"(? bool: + """Checks if a module exists without importing it""" + return importlib.util.find_spec(name) is not None + + +def import_and_create_module(module_name: str, class_name: str) -> Any: + """ + Dynamically import a module and create an instance of a specified class. + + Args: + module_name: String name of the module (e.g., 'aidbox.hl7_fhir_r4_core.patient') + class_name: String name of the class (e.g., 'Patient') + + Returns: + Instance of the specified class + """ + try: + module = importlib.import_module(module_name) + class_obj = getattr(module, class_name) + return class_obj + + except (ImportError, AttributeError) as e: + raise ImportError(f"Could not import {class_name} from {module_name}: {e}") + + +def import_and_create_module_if_exists(package: str, class_name: str) -> Any: + """ + Dynamically import a module and create an instance of a specified class if the module exists. + + Args: + package: String name of the package (e.g., 'aidbox.hl7_fhir_r4_core') + class_name: String name of the class (e.g., 'Patient') + + Returns: + Instance of the specified class or None if the module does not exist + """ + module_name = package + "." + to_snake_case(class_name) + if module_exists(module_name): + return import_and_create_module(module_name, class_name) + else: + return None + + +def validate_and_downcast( + resource_data: dict[str, Any], package_list: List[str], family: List[str] +) -> Any: + """ + Validates and downcasts ResourceFamily to the appropriate FHIR resource class + + Args: + resource_data: Input value (dict) + package_list: List of package names to search for resource classes (e.g., ['aidbox.hl7_fhir_r4_core', 'aidbox.hl7_fhir_r4_extras']) + family: List of valid resource types (e.g., 'Group' or 'Patient') + + Returns: + Instance of the appropriate FHIR resource class + """ + + # Extract and validate resource type + resource_type = resource_data.get("resourceType") + if not resource_type: + raise ValueError("Missing 'resourceType' field in resource") + + if resource_type not in family: + raise ValueError(f"Invalid resourceType '{resource_type}'. ") + + # Dynamically import and instantiate the appropriate class + target_class = None + for package in package_list: + target_class = import_and_create_module_if_exists(package, resource_type) + if target_class is not None: + break + if target_class is None: + raise ImportError( + f"Could not find class for resourceType '{resource_type}' in packages {package_list}" + ) + + return target_class.model_validate(resource_data) diff --git a/src/api/writer-generator/python/static-files/requirements.txt b/src/api/writer-generator/python/static-files/requirements.txt new file mode 100644 index 000000000..82b6749a5 --- /dev/null +++ b/src/api/writer-generator/python/static-files/requirements.txt @@ -0,0 +1,5 @@ +requests>=2.32.0,<3.0.0 +pytest>=8.3.0,<9.0.0 +pydantic>=2.11.0,<3.0.0 +mypy>=1.9.0,<2.0.0 +types-requests>=2.32.0,<3.0.0 \ No newline at end of file diff --git a/src/api/writer-generator/python/utils.ts b/src/api/writer-generator/python/utils.ts new file mode 100644 index 000000000..13b60f400 --- /dev/null +++ b/src/api/writer-generator/python/utils.ts @@ -0,0 +1,110 @@ +import type { Identifier } from "@root/typeschema"; +import type { RegularTypeSchema } from "@typeschema/types.ts"; + +export class pythonUtils { + private resourceHierarchy: { parent: Identifier; child: Identifier }[] | null = []; + + constructor() { + this.resourceHierarchy = null; + } + + evaluateResourceHierarchy(resources: RegularTypeSchema[]) { + const pairs: { parent: Identifier; child: Identifier }[] = []; + for (const schema of resources) { + if (schema.base) { + pairs.push({ parent: schema.base, child: schema.identifier }); + } + } + return pairs; + } + + childrenOf(schemaRef: Identifier, resources: RegularTypeSchema[]): Identifier[] { + if (!this.resourceHierarchy) { + this.resourceHierarchy = this.evaluateResourceHierarchy(resources); + } + const children = this.resourceHierarchy + .filter((pair) => pair.parent.name === schemaRef.name) + .map((pair) => pair.child); + const subChildren = children.flatMap((child) => this.childrenOf(child, resources)); + return [...[...children].map((child) => child), ...subChildren]; + } + + getPackages(packageResources: RegularTypeSchema[], rootPackage: string): string[] { + const packages: string[] = []; + for (const resource of packageResources) { + const resource_name: string = `${rootPackage}.${resource.identifier.package.replaceAll(".", "_")}`; + if (!packages.includes(resource_name)) packages.push(resource_name); + } + return packages; + } + + getFamilies(packageResources: RegularTypeSchema[]): Record { + const families: Record = {}; + for (const resource of packageResources) { + const resources: string[] = this.childrenOf(resource.identifier, packageResources).map( + (c: { name: string }) => c.name, + ); + if (resources.length > 0) { + const familyName = `${resource.identifier.name}Family`; + families[familyName] = resources; + } + } + return families; + } + + sortSchemasByDeps(schemas: RegularTypeSchema[]): RegularTypeSchema[] { + const graph = this.buildDependencyGraph(schemas); + const sorted = this.topologicalSort(graph); + return sorted + .map((name) => schemas.find((schema) => schema.identifier.name === name)) + .filter(Boolean) as RegularTypeSchema[]; + } + + buildDependencyGraph(schemas: RegularTypeSchema[]): Record { + const nameToMap: Record = {}; + for (const schema of schemas) { + nameToMap[schema.identifier.name] = schema; + } + + const graph: Record = {}; + for (const schema of schemas) { + const name = schema.identifier.name; + const base = schema.base?.name; + if (!graph[name]) { + graph[name] = []; + } + if (base && nameToMap[base]) { + graph[name].push(base); + } + } + return graph; + } + + topologicalSort(graph: Record): string[] { + const sorted: string[] = []; + const visited: Record = {}; + const temp: Record = {}; + + const visit = (node: string) => { + if (temp[node]) { + throw new Error(`Graph has cycles ${node}`); + } + if (!visited[node]) { + temp[node] = true; + for (const neighbor of graph[node] ?? []) { + visit(neighbor); + } + temp[node] = false; + visited[node] = true; + sorted.push(node); + } + }; + + for (const node in graph) { + if (!visited[node]) { + visit(node); + } + } + return sorted; + } +} diff --git a/src/api/writer-generator/writer.ts b/src/api/writer-generator/writer.ts index 95fb80199..0d5b6c04f 100644 --- a/src/api/writer-generator/writer.ts +++ b/src/api/writer-generator/writer.ts @@ -196,4 +196,23 @@ export abstract class Writer extends Fi this.deindent(); this.line(`]${endTokens?.filter(Boolean).join(" ") ?? ""}`); } + + buildImportLine(remaining: string[], maxImportLineLength: number): string { + let line = ""; + + while (remaining.length > 0 && line.length < maxImportLineLength) { + const entity = remaining.shift()!; + if (line.length > 0) { + line += ", "; + } + line += entity; + } + + if (remaining.length > 0) { + line += ", \\"; + } + + return line; + } + } diff --git a/test/helpers/assertions.ts b/test/helpers/assertions.ts new file mode 100644 index 000000000..e69de29bb diff --git a/test/helpers/schema-helpers.ts b/test/helpers/schema-helpers.ts new file mode 100644 index 000000000..e69de29bb diff --git a/test/unit/api/generators/base/errors.test.ts b/test/unit/api/generators/base/errors.test.ts new file mode 100644 index 000000000..e69de29bb